@loke/http-rpc 5.1.0-beta.1 → 5.1.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +63 -0
- package/dist/common.d.ts +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +1 -0
- package/dist/schema.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -52,6 +52,69 @@ app.use(
|
|
|
52
52
|
app.use(createErrorHandler({ log: (msg) => console.log(msg) }));
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
With Schema
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
const { serviceWithSchema } = require("@loke/http-rpc");
|
|
59
|
+
|
|
60
|
+
const MY_SERVICE_META = {
|
|
61
|
+
service: "my-service", // display name
|
|
62
|
+
help: "Documentation goes here",
|
|
63
|
+
multiArg: false, // defaults to false. If true accepts an array for arguments, if false an array will be assumed to be the first (and only) argument.
|
|
64
|
+
expose: [
|
|
65
|
+
// The methods to be exposed publicly
|
|
66
|
+
|
|
67
|
+
{
|
|
68
|
+
methodName: "moreStuff",
|
|
69
|
+
methodTimeout: 15000,
|
|
70
|
+
paramNames: ["stuffs"],
|
|
71
|
+
help: "This is a silly method",
|
|
72
|
+
},
|
|
73
|
+
],
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
const meta = { implementation: myService, meta: MY_SERVICE_META };
|
|
77
|
+
|
|
78
|
+
interface Thing {
|
|
79
|
+
name: string;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
type Defs = { Thing: Thing };
|
|
83
|
+
|
|
84
|
+
// can now be...
|
|
85
|
+
|
|
86
|
+
// https://jsontypedef.com/docs/jtd-in-5-minutes/#empty-schemas
|
|
87
|
+
|
|
88
|
+
// instead of `typeof myService` you could also name a type like
|
|
89
|
+
// type Service = {}
|
|
90
|
+
const metaWithSchema = serviceWithSchema<typeof myService, Defs>(myService, {
|
|
91
|
+
name: "my-service",
|
|
92
|
+
// Record<string, JTD>
|
|
93
|
+
definitions: {
|
|
94
|
+
Thing: {
|
|
95
|
+
properties: {
|
|
96
|
+
name: { type: "string" },
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
methods: {
|
|
101
|
+
moreStuff: {
|
|
102
|
+
help: "This is a silly method",
|
|
103
|
+
// JTD
|
|
104
|
+
requestTypeDef: {
|
|
105
|
+
properties: {
|
|
106
|
+
stuffs: { type: "string" },
|
|
107
|
+
},
|
|
108
|
+
optionalProperties: {
|
|
109
|
+
thing: {},
|
|
110
|
+
},
|
|
111
|
+
},
|
|
112
|
+
responseTypeDef: { ref: "Thing" },
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
});
|
|
116
|
+
```
|
|
117
|
+
|
|
55
118
|
## Implementation Guide
|
|
56
119
|
|
|
57
120
|
```js
|
package/dist/common.d.ts
CHANGED
package/dist/schema.d.ts
CHANGED
package/dist/schema.js
CHANGED
|
@@ -22,6 +22,7 @@ function serviceWithSchema(service, serviceMeta) {
|
|
|
22
22
|
const implementation = {};
|
|
23
23
|
const serviceDetails = {
|
|
24
24
|
service: serviceMeta.name,
|
|
25
|
+
definitions: serviceMeta === null || serviceMeta === void 0 ? void 0 : serviceMeta.definitions,
|
|
25
26
|
expose: [],
|
|
26
27
|
};
|
|
27
28
|
for (const [methodName, methodMeta] of Object.entries(serviceMeta.methods)) {
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":";;;;;;AAAA,uDAAkD;AAQlD,MAAM,eAAgB,SAAQ,KAAK;IAMjC,YAAY,OAAe,EAAE,MAA6B;QACxD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,sDAAsD,CAAC;QACnE,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE;YACrC,UAAU,EAAE,IAAI;YAChB,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC9B,CAAC;CACF;AAwBD,SAAgB,iBAAiB,CAI/B,OAAU,EACV,WAMC;IAED,MAAM,GAAG,GAAG,IAAI,aAAG,EAAE,CAAC;IAEtB,MAAM,cAAc,GAEhB,EAAE,CAAC;IAEP,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"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"}
|