github.com/vcilabs/webrpc@v0.5.2-0.20201116131534-162e27b1b33b/gen/javascript/embed/statik.go (about)

     1  // Code generated by statik. DO NOT EDIT.
     2  
     3  // Package contains static assets.
     4  package embed
     5  
     6  var Asset = "PK\x03\x04\x14\x00\x08\x00\x00\x00WQTQ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00	\x00client.js.tmplUT\x05\x00\x01\xa7\xb7\x8e_{{define \"client\"}}\x0d\n{{- if .Services}}\x0d\n//\x0d\n// Client\x0d\n//\x0d\n{{ range .Services}}\x0d\n{{exportKeyword}}class {{.Name}} {\x0d\n  constructor(hostname, fetch) {\x0d\n    this.path = '/rpc/{{.Name}}/'\x0d\n    this.hostname = hostname\x0d\n    this.fetch = fetch\x0d\n  }\x0d\n\x0d\n  url(name) {\x0d\n    return this.hostname + this.path + name\x0d\n  }\x0d\n  {{range .Methods}}\x0d\n  {{.Name | methodName}} = ({{.Inputs | methodInputs}}) => {\x0d\n    return this.fetch(\x0d\n      this.url('{{.Name}}'),\x0d\n      {{- if .Inputs | len}}\x0d\n      createHTTPRequest(args, headers)\x0d\n      {{- else}}\x0d\n      createHTTPRequest({}, headers)\x0d\n      {{- end}}\x0d\n    ).then((res) => {\x0d\n      return buildResponse(res).then(_data => {\x0d\n        return {\x0d\n        {{- $outputsCount := .Outputs|len -}}\x0d\n        {{- range $i, $output := .Outputs}}\x0d\n          {{$output | newOutputArgResponse}}{{listComma $i $outputsCount}}\x0d\n        {{- end}}\x0d\n        }\x0d\n      })\x0d\n    })\x0d\n  }\x0d\n  {{end}}\x0d\n}\x0d\n{{end -}}\x0d\n{{end -}}\x0d\n{{end}}PK\x07\x08/\xe3\xce\xce\xb4\x03\x00\x00\xb4\x03\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00WQTQ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00	\x00client_helpers.js.tmplUT\x05\x00\x01\xa7\xb7\x8e_{{define \"client_helpers\"}}\x0d\nconst createHTTPRequest = (body = {}, headers = {}) => {\x0d\n  return {\x0d\n    method: 'POST',\x0d\n    headers: { ...headers, 'Content-Type': 'application/json' },\x0d\n    body: JSON.stringify(body || {})\x0d\n  }\x0d\n}\x0d\n\x0d\nconst buildResponse = (res) => {\x0d\n  return res.text().then(text => {\x0d\n    let data\x0d\n    try {\x0d\n      data = JSON.parse(text)\x0d\n    } catch(err) {\x0d\n      throw { code: 'unknown', msg: `expecting JSON, got: ${text}`, status: res.status }\x0d\n    }\x0d\n    if (!res.ok) {\x0d\n      throw data // webrpc error response\x0d\n    }\x0d\n    return data\x0d\n  })\x0d\n}\x0d\n{{end}}\x0d\nPK\x07\x08\x16\x17}\x06F\x02\x00\x00F\x02\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00j\x8aeQ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x00	\x00proto.gen.js.tmplUT\x05\x00\x01\x184\xa4_{{- define \"proto\" -}}\x0d\n// {{.Name}} {{.SchemaVersion}} {{.SchemaHash}}\x0d\n// --\x0d\n// This file has been generated by https://github.com/webrpc/webrpc using gen/javascript\x0d\n// Do not edit by hand. Update your webrpc schema and re-generate.\x0d\n\x0d\n{{ if .WebRPCVersion}}\x0d\n// WebRPC description and code-gen version\x0d\nexport const WebRPCVersion = \"{{.WebRPCVersion}}\"\x0d\n{{end}}{{ if .SchemaVersion }}\x0d\n// Schema version of your RIDL schema\x0d\nexport const WebRPCSchemaVersion = \"{{.SchemaVersion}}\"\x0d\n{{end}}{{ if .SchemaHash }}\x0d\n// Schema hash generated from your RIDL schema\x0d\nexport const WebRPCSchemaHash = \"{{.SchemaHash}}\"\x0d\n{{end}}\x0d\n{{template \"types\" .}}\x0d\n{{- if .TargetOpts.Client}}\x0d\n  {{template \"client\" .}}\x0d\n  {{template \"client_helpers\" .}}\x0d\n{{- end}}\x0d\n{{- if .TargetOpts.Server}}\x0d\n  {{template \"server\" .}}\x0d\n{{- end}}\x0d\n{{- end}}\x0d\nPK\x07\x08\xde\xeb\x06\x94<\x03\x00\x00<\x03\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00WQTQ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00	\x00server.js.tmplUT\x05\x00\x01\xa7\xb7\x8e_{{define \"server\"}}\x0d\n\x0d\n{{- if .Services}}\x0d\n//\x0d\n// Server\x0d\n//\x0d\n\x0d\nclass WebRPCError extends Error {\x0d\n    constructor(msg = \"error\", statusCode) {\x0d\n        super(\"webrpc eror: \" + msg);\x0d\n\x0d\n        this.statusCode = statusCode\x0d\n    }\x0d\n}\x0d\n\x0d\nimport express from 'express'\x0d\n\x0d\n    {{- range .Services}}\x0d\n        {{$name := .Name}}\x0d\n        {{$serviceName := .Name | serviceInterfaceName}}\x0d\n\x0d\n        export const create{{$serviceName}}App = (serviceImplementation) => {\x0d\n            const app = express();\x0d\n\x0d\n            app.use(express.json())\x0d\n\x0d\n            app.post('/*', async (req, res) => {\x0d\n                const requestPath = req.baseUrl + req.path\x0d\n\x0d\n                if (!req.body) {\x0d\n                    res.status(400).send(\"webrpc error: missing body\");\x0d\n\x0d\n                    return\x0d\n                }\x0d\n\x0d\n                switch(requestPath) {\x0d\n                    {{range .Methods}}\x0d\n\x0d\n                    case \"/rpc/{{$name}}/{{.Name}}\": {                        \x0d\n                        try {\x0d\n                            {{ range .Inputs }}\x0d\n                                {{- if not .Optional}}\x0d\n                                    if (!(\"{{ .Name }}\" in req.body)) {\x0d\n                                        throw new WebRPCError(\"Missing Argument `{{ .Name }}`\")\x0d\n                                    }\x0d\n                                {{end -}}\x0d\n\x0d\n                                if (typeof req.body[\"{{.Name}}\"] !== \"{{ .Type | jsFieldType }}\") {\x0d\n                                    throw new WebRPCError(\"Invalid arg: {{ .Name }}, got type \" + typeof req.body[\"{{ .Name }}\"] + \" expected \" + \"{{ .Type | jsFieldType }}\", 400);\x0d\n                                }\x0d\n                            {{end}}\x0d\n\x0d\n                            const response = await serviceImplementation[\"{{.Name}}\"](req.body);\x0d\n\x0d\n                            {{ range .Outputs}}\x0d\n                                if (!(\"{{ .Name }}\" in response)) {\x0d\n                                    throw new WebRPCError(\"internal\", 500);\x0d\n                                }\x0d\n                            {{end}}\x0d\n\x0d\n                            res.status(200).json(response);\x0d\n                        } catch (err) {\x0d\n                            if (err instanceof WebRPCError) {\x0d\n                                const statusCode = err.statusCode || 400\x0d\n                                const message = err.message\x0d\n\x0d\n                                res.status(statusCode).json({\x0d\n                                    msg: message,\x0d\n                                    status: statusCode,\x0d\n                                    code: \"\"\x0d\n                                });\x0d\n\x0d\n                                return\x0d\n                            }\x0d\n\x0d\n                            if (err.message) {\x0d\n                                res.status(400).send(err.message);\x0d\n\x0d\n                                return;\x0d\n                            }\x0d\n\x0d\n                            res.status(400).end();\x0d\n                        }\x0d\n                    }\x0d\n\x0d\n                    return;\x0d\n                    {{end}}\x0d\n\x0d\n                    default: {\x0d\n                        res.status(404).end()\x0d\n                    }\x0d\n                }\x0d\n            });\x0d\n\x0d\n            return app;\x0d\n        };\x0d\n    {{- end}}\x0d\n{{end -}}\x0d\n{{end}}\x0d\nPK\x07\x08%\xfc\x82\x96\xd6\x0c\x00\x00\xd6\x0c\x00\x00PK\x03\x04\x14\x00\x08\x00\x00\x00\xeb5cQ\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00	\x00types.js.tmplUT\x05\x00\x01\xfa\xfc\xa0_{{define \"types\"}}\x0d\n//\x0d\n// Types\x0d\n//\x0d\n{{ if .Messages -}}\x0d\n{{range .Messages -}}\x0d\n\x0d\n{{if .Type | isEnum -}}\x0d\n{{$enumName := .Name}}\x0d\n{{exportKeyword}}var {{$enumName}};\x0d\n(function ({{$enumName}}) {\x0d\n{{- range $i, $field := .Fields}}\x0d\n  {{$enumName}}[\"{{$field.Name}}\"] = \"{{$field.Name}}\"\x0d\n{{- end}}\x0d\n})({{$enumName}} || ({{$enumName}} = {}))\x0d\n{{end -}}\x0d\n\x0d\n{{- if .Type | isStruct  }}\x0d\n{{exportKeyword}}class {{.Name}} {\x0d\n  constructor(_data) {\x0d\n    this._data = {}\x0d\n    if (_data) {\x0d\n      {{range .Fields -}}\x0d\n      this._data['{{. | exportedJSONField}}'] = _data['{{. | exportedJSONField}}']\x0d\n      {{end}}\x0d\n    }\x0d\n  }\x0d\n  {{ range .Fields -}}\x0d\n  get {{. | exportedJSONField}}() {\x0d\n    return this._data['{{. | exportedJSONField }}']\x0d\n  }\x0d\n  set {{. | exportedJSONField}}(value) {\x0d\n    this._data['{{. | exportedJSONField}}'] = value\x0d\n  }\x0d\n  {{end}}\x0d\n  toJSON() {\x0d\n    return this._data\x0d\n  }\x0d\n}\x0d\n{{end -}}\x0d\n{{end -}}\x0d\n{{end -}}\x0d\n\x0d\n{{end}}\x0d\nPK\x07\x08\xd9\xde%\xef\xae\x03\x00\x00\xae\x03\x00\x00PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00WQTQ/\xe3\xce\xce\xb4\x03\x00\x00\xb4\x03\x00\x00\x0e\x00	\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x81\x00\x00\x00\x00client.js.tmplUT\x05\x00\x01\xa7\xb7\x8e_PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00WQTQ\x16\x17}\x06F\x02\x00\x00F\x02\x00\x00\x16\x00	\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x81\xf9\x03\x00\x00client_helpers.js.tmplUT\x05\x00\x01\xa7\xb7\x8e_PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00j\x8aeQ\xde\xeb\x06\x94<\x03\x00\x00<\x03\x00\x00\x11\x00	\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x81\x8c\x06\x00\x00proto.gen.js.tmplUT\x05\x00\x01\x184\xa4_PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00WQTQ%\xfc\x82\x96\xd6\x0c\x00\x00\xd6\x0c\x00\x00\x0e\x00	\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x81\x10\n\x00\x00server.js.tmplUT\x05\x00\x01\xa7\xb7\x8e_PK\x01\x02\x14\x03\x14\x00\x08\x00\x00\x00\xeb5cQ\xd9\xde%\xef\xae\x03\x00\x00\xae\x03\x00\x00\x0d\x00	\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb6\x81+\x17\x00\x00types.js.tmplUT\x05\x00\x01\xfa\xfc\xa0_PK\x05\x06\x00\x00\x00\x00\x05\x00\x05\x00c\x01\x00\x00\x1d\x1b\x00\x00\x00\x00"