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"