@loke/http-rpc 5.0.0 → 5.1.0-beta.0

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 CHANGED
@@ -1,4 +1,4 @@
1
- # loke-http-rpc
1
+ # @loke/http-rpc
2
2
 
3
3
  ## Breaking Changes for v5
4
4
 
@@ -17,7 +17,7 @@
17
17
  RequestHandler is directly exposed in v4
18
18
 
19
19
  ```js
20
- const lokeHttpRpc = require("loke-http-rpc");
20
+ const lokeHttpRpc = require("@loke/http-rpc");
21
21
 
22
22
  const myRpcService = lokeHttpRpc.createRequestHandler(
23
23
  myService,
@@ -32,7 +32,7 @@ app.use(lokeHttpRpc.createErrorHandler({ log: (msg) => console.log(msg) }));
32
32
  createRequestHandler adds the service name to the path where its exposed. ("/rpc/service-name"). This allows to handle multiple services with single handler.
33
33
 
34
34
  ```js
35
- const { createRequestHandler, createErrorHandler } = require("loke-http-rpc");
35
+ const { createRequestHandler, createErrorHandler } = require("@loke/http-rpc");
36
36
 
37
37
  // service will be exposed on /rpc/service-name
38
38
  app.use(
@@ -55,7 +55,7 @@ app.use(createErrorHandler({ log: (msg) => console.log(msg) }));
55
55
  ## Implementation Guide
56
56
 
57
57
  ```js
58
- const { createRequestHandler, createErrorHandler } = require("loke-http-rpc");
58
+ const { createRequestHandler, createErrorHandler } = require("@loke/http-rpc");
59
59
 
60
60
  const myService = {
61
61
  async doStuff() {
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { RequestHandler, ErrorRequestHandler } from "express";
2
+ import { JTDSchemaType } from "ajv/dist/jtd";
2
3
  declare class ExtendableError extends Error {
3
4
  constructor(message: string);
4
5
  }
@@ -12,22 +13,27 @@ export declare class RpcError extends ExtendableError {
12
13
  constructor(serviceName: string, methodName: string, inner: Error);
13
14
  }
14
15
  export declare type Method<A = any, R = any> = (args: A) => R;
15
- export interface MethodDetails<S> {
16
- methodName: keyof S;
16
+ export interface MethodDetails {
17
+ methodName: string;
17
18
  methodTimeout?: number;
18
19
  help?: string;
19
20
  paramNames?: string[];
21
+ requestTypeDef?: JTDSchemaType<any, any>;
22
+ responseTypeDef?: JTDSchemaType<any, any>;
20
23
  }
21
- export interface ServiceDetails<S> {
22
- expose: MethodDetails<S>[];
24
+ export interface ServiceDetails<S, Def extends Record<string, unknown> = Record<string, never>> {
25
+ expose: MethodDetails[];
23
26
  service: string;
24
27
  help?: string;
25
28
  path?: string;
29
+ definitions?: {
30
+ [K in keyof Def]: JTDSchemaType<Def[K], Def>;
31
+ };
26
32
  }
27
33
  export interface Service {
28
34
  [methodName: string]: Method;
29
35
  }
30
- interface ServiceSet<S extends Service> {
36
+ export interface ServiceSet<S extends Service> {
31
37
  implementation: S;
32
38
  meta: ServiceDetails<S>;
33
39
  }
package/dist/index.js CHANGED
@@ -39,91 +39,94 @@ class RpcError extends ExtendableError {
39
39
  }
40
40
  }
41
41
  exports.RpcError = RpcError;
42
- function hasMethod(serviceDetails, methodName) {
43
- return serviceDetails.expose.map((m) => m.methodName).includes(methodName);
44
- }
45
42
  function getExposedMeta(serviceDetails) {
46
43
  return {
47
44
  serviceName: serviceDetails.service,
48
45
  multiArg: false,
49
46
  help: serviceDetails.help || serviceDetails.service + " service",
47
+ definitions: serviceDetails.definitions,
50
48
  interfaces: serviceDetails.expose.map((method) => {
51
49
  if (typeof method === "string") {
52
50
  throw new Error("Schema for expose has changed. Please refer to @loke/http-rpc documentation.");
53
51
  }
54
- const { methodName, methodTimeout = 60000, help, paramNames = [], } = method;
52
+ const { methodName, methodTimeout = 60000, help, paramNames = [], requestTypeDef, responseTypeDef, } = method;
55
53
  return {
56
54
  methodName,
57
55
  paramNames,
58
56
  methodTimeout,
59
57
  help: help || methodName + " method",
58
+ requestTypeDef,
59
+ responseTypeDef,
60
60
  };
61
61
  }),
62
62
  };
63
63
  }
64
- function parsePath(path, legacy) {
65
- const pathParts = path.split("/");
66
- // Legacy mode still supports the new /service-name/methodName format
67
- // If length is 2 we assume it is the old /methodName format
68
- if (legacy && pathParts.length === 2) {
69
- const [, methodName] = path.split("/");
70
- return { methodName };
71
- }
72
- const [, serviceName, methodName] = path.split("/");
73
- return { serviceName, methodName };
74
- }
75
- // TODO: can't seem to get out of using any here because the type is an array
76
64
  function createRequestHandler(services, options) {
77
- const serviceMap = services.reduce((obj, service) => {
78
- obj[service.meta.service] = service;
79
- return obj;
80
- }, {});
81
65
  const { legacy = false } = options || {};
82
66
  if (legacy && services.length !== 1) {
83
67
  throw new Error("Only 1 service is supported in legacy mode");
84
68
  }
85
- return async (req, res, next) => {
86
- // Is it requested the meta for all known services?
87
- if (req.path === "/") {
88
- // return an array of service metadata
89
- res.json({
90
- services: Object.values(services.map((s) => getExposedMeta(s.meta))),
91
- });
92
- return;
93
- }
94
- // eg /email-service/sendEmail -> ["", "email-service", "sendEmail"]
95
- const { serviceName: parsedServiceName, methodName } = parsePath(req.path, legacy);
96
- const serviceName = legacy
97
- ? services[0].meta.service
98
- : parsedServiceName;
99
- if (!serviceMap[serviceName]) {
100
- // We don't have this service, don't handle
101
- return next();
102
- }
103
- const service = serviceMap[serviceName];
104
- if (req.method === "GET" && req.path === "/" + serviceName) {
105
- return res.json(getExposedMeta(service.meta));
69
+ const postHandlers = new Map();
70
+ const getHandlers = new Map();
71
+ const meta = {
72
+ services: Object.values(services.map((s) => getExposedMeta(s.meta))),
73
+ };
74
+ getHandlers.set("/", (req, res) => {
75
+ res.json(meta);
76
+ });
77
+ for (const service of services) {
78
+ const serviceName = service.meta.service;
79
+ const serviceMeta = meta.services.find((s) => s.serviceName === serviceName);
80
+ getHandlers.set(`/${serviceName}`, (req, res) => {
81
+ res.json(serviceMeta);
82
+ });
83
+ for (const methodDef of service.meta.expose) {
84
+ const { methodName } = methodDef;
85
+ const methodMeta = serviceMeta === null || serviceMeta === void 0 ? void 0 : serviceMeta.interfaces.find((s) => s.methodName === methodName);
86
+ const getHandler = (req, res) => {
87
+ res.json(methodMeta);
88
+ };
89
+ getHandlers.set(`/${serviceName}/${methodName}`, getHandler);
90
+ if (legacy) {
91
+ getHandlers.set(`/${methodName}`, getHandler);
92
+ }
93
+ const requestMeta = { handler: `${serviceName}.${methodName}` };
94
+ const methodFn = service.implementation[methodName].bind(service.implementation);
95
+ const postHandler = async (req, res, next) => {
96
+ const end = requestDuration.startTimer(requestMeta);
97
+ try {
98
+ requestCount.inc(requestMeta);
99
+ const result = await methodFn(req.body);
100
+ res.json(result);
101
+ }
102
+ catch (err) {
103
+ failureCount.inc(Object.assign({ type: err.type }, requestMeta));
104
+ next(new RpcError(serviceName, methodName, err));
105
+ }
106
+ finally {
107
+ end();
108
+ }
109
+ };
110
+ postHandlers.set(`/${serviceName}/${methodName}`, postHandler);
111
+ if (legacy) {
112
+ postHandlers.set(`/${methodName}`, postHandler);
113
+ }
106
114
  }
107
- if (req.method === "GET" && hasMethod(service.meta, methodName)) {
108
- return res.json(getExposedMeta(service.meta).interfaces.find((i) => i.methodName === methodName));
115
+ }
116
+ return async (req, res, next) => {
117
+ let handler;
118
+ switch (req.method) {
119
+ case "GET":
120
+ handler = getHandlers.get(req.path);
121
+ break;
122
+ case "POST":
123
+ handler = postHandlers.get(req.path);
124
+ break;
109
125
  }
110
- if (req.method !== "POST" || !hasMethod(service.meta, methodName)) {
126
+ if (!handler) {
111
127
  return next();
112
128
  }
113
- const requestMeta = { handler: `${serviceName}.${methodName}` };
114
- const end = requestDuration.startTimer(requestMeta);
115
- try {
116
- requestCount.inc(requestMeta);
117
- const result = await service.implementation[methodName].call(service.implementation, req.body);
118
- res.json(result);
119
- }
120
- catch (err) {
121
- failureCount.inc(Object.assign({ type: err.type }, requestMeta));
122
- next(new RpcError(serviceName, methodName, err));
123
- }
124
- finally {
125
- end();
126
- }
129
+ handler(req, res, next);
127
130
  };
128
131
  }
129
132
  exports.createRequestHandler = createRequestHandler;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { JTDSchemaType } from "ajv/dist/jtd";
2
+ import { ServiceSet, Service } from ".";
3
+ export interface MethodDetails<Req, Res, Def extends Record<string, unknown> = Record<string, never>> {
4
+ methodTimeout?: number;
5
+ help?: string;
6
+ requestTypeDef?: JTDSchemaType<Req, Def>;
7
+ responseTypeDef?: JTDSchemaType<Res, Def>;
8
+ }
9
+ declare type Methods<S extends Service, Def extends Record<string, unknown> = Record<string, never>> = {
10
+ [K in keyof S]?: MethodDetails<Parameters<S[K]>[0], Awaited<ReturnType<S[K]>>, Def>;
11
+ };
12
+ export declare function serviceWithSchema<S extends Service, Def extends Record<string, unknown> = Record<string, never>>(service: S, serviceMeta: {
13
+ name: string;
14
+ definitions?: {
15
+ [K in keyof Def]: JTDSchemaType<Def[K], Def>;
16
+ };
17
+ methods: Methods<S, Def>;
18
+ }): ServiceSet<Service>;
19
+ export {};
package/dist/schema.js ADDED
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.serviceWithSchema = void 0;
7
+ const jtd_1 = __importDefault(require("ajv/dist/jtd"));
8
+ class ValidationError extends Error {
9
+ constructor(message, params) {
10
+ super(message);
11
+ this.code = "validation";
12
+ this.type = "https://errors.loke.global/@loke/http-rpc/validation";
13
+ Object.defineProperty(this, "message", {
14
+ enumerable: true,
15
+ value: message,
16
+ });
17
+ Object.assign(this, params);
18
+ }
19
+ }
20
+ function serviceWithSchema(service, serviceMeta) {
21
+ const ajv = new jtd_1.default();
22
+ const implementation = {};
23
+ const serviceDetails = {
24
+ service: serviceMeta.name,
25
+ expose: [],
26
+ };
27
+ for (const [methodName, methodMeta] of Object.entries(serviceMeta.methods)) {
28
+ const requestSchema = ajv.compile(Object.assign({ definitions: serviceMeta === null || serviceMeta === void 0 ? void 0 : serviceMeta.definitions }, methodMeta === null || methodMeta === void 0 ? void 0 : methodMeta.requestTypeDef));
29
+ const responseSchema = ajv.compile(Object.assign({ definitions: serviceMeta === null || serviceMeta === void 0 ? void 0 : serviceMeta.definitions }, methodMeta === null || methodMeta === void 0 ? void 0 : methodMeta.responseTypeDef));
30
+ serviceDetails.expose.push({
31
+ methodName,
32
+ methodTimeout: methodMeta.methodTimeout,
33
+ help: methodMeta.help,
34
+ requestTypeDef: methodMeta.requestTypeDef,
35
+ responseTypeDef: methodMeta.responseTypeDef,
36
+ });
37
+ const endpoint = service[methodName].bind(service);
38
+ implementation[methodName] = async (args) => {
39
+ if (!requestSchema(args)) {
40
+ const errors = requestSchema.errors;
41
+ let msg = "request schema validation error";
42
+ const params = {};
43
+ if (Array.isArray(errors)) {
44
+ const err = errors[0];
45
+ if (err) {
46
+ params.instancePath = err.instancePath;
47
+ params.schemaPath = err.schemaPath;
48
+ msg =
49
+ (err.instancePath
50
+ ? err.instancePath.slice(1).replace(/\//g, ".") + " "
51
+ : "") + err.message;
52
+ }
53
+ }
54
+ throw new ValidationError(msg, params);
55
+ }
56
+ const result = await endpoint(args);
57
+ if (!responseSchema(result)) {
58
+ const errors = responseSchema.errors;
59
+ console.log("result errors", errors);
60
+ throw new Error("invalid response");
61
+ }
62
+ return result;
63
+ };
64
+ }
65
+ return {
66
+ implementation,
67
+ meta: serviceDetails,
68
+ };
69
+ }
70
+ exports.serviceWithSchema = serviceWithSchema;
71
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../schema.ts"],"names":[],"mappings":"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"}
@@ -24,8 +24,8 @@ function createServerAddress(app) {
24
24
  }
25
25
  return `http://localhost:${address.port}`;
26
26
  }
27
- ava_1.default("passes through messages", async (t) => {
28
- const app = express_1.default();
27
+ (0, ava_1.default)("passes through messages", async (t) => {
28
+ const app = (0, express_1.default)();
29
29
  const implementation = {
30
30
  basicError: () => {
31
31
  throw new Error("This is a basic error");
@@ -35,7 +35,7 @@ ava_1.default("passes through messages", async (t) => {
35
35
  expose: [{ methodName: "basicError" }],
36
36
  service: "hello-service",
37
37
  };
38
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }], { legacy: true }), __1.createErrorHandler());
38
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }], { legacy: true }), (0, __1.createErrorHandler)());
39
39
  const serverAddress = createServerAddress(app);
40
40
  const err = await t.throwsAsync(() => got_1.default.post(`${serverAddress}/rpc/basicError`, {
41
41
  json: {},
@@ -45,8 +45,8 @@ ava_1.default("passes through messages", async (t) => {
45
45
  message: "This is a basic error",
46
46
  });
47
47
  });
48
- ava_1.default("passes through codes if available and makes them exposed", async (t) => {
49
- const app = express_1.default();
48
+ (0, ava_1.default)("passes through codes if available and makes them exposed", async (t) => {
49
+ const app = (0, express_1.default)();
50
50
  const implementation = {
51
51
  codeError: () => {
52
52
  const err = new Error("This is a code error");
@@ -58,7 +58,7 @@ ava_1.default("passes through codes if available and makes them exposed", async
58
58
  expose: [{ methodName: "codeError" }],
59
59
  service: "hello-service",
60
60
  };
61
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }], { legacy: true }), __1.createErrorHandler());
61
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }], { legacy: true }), (0, __1.createErrorHandler)());
62
62
  const serverAddress = createServerAddress(app);
63
63
  const err = await t.throwsAsync(() => got_1.default.post(`${serverAddress}/rpc/codeError`, {
64
64
  json: {},
@@ -69,9 +69,9 @@ ava_1.default("passes through codes if available and makes them exposed", async
69
69
  code: "CODE_ERROR",
70
70
  });
71
71
  });
72
- ava_1.default("passes through expose if available on a @loke/errors type", async (t) => {
73
- const app = express_1.default();
74
- const CustomError = errors_1.createErrorType({
72
+ (0, ava_1.default)("passes through expose if available on a @loke/errors type", async (t) => {
73
+ const app = (0, express_1.default)();
74
+ const CustomError = (0, errors_1.createErrorType)({
75
75
  message: "LOKE Error",
76
76
  code: "my_code",
77
77
  help: "Some help",
@@ -86,7 +86,7 @@ ava_1.default("passes through expose if available on a @loke/errors type", async
86
86
  expose: [{ methodName: "lokeError" }],
87
87
  service: "hello-service",
88
88
  };
89
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }], { legacy: true }), __1.createErrorHandler());
89
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }], { legacy: true }), (0, __1.createErrorHandler)());
90
90
  const serverAddress = createServerAddress(app);
91
91
  const err = await t.throwsAsync(() => got_1.default.post(`${serverAddress}/rpc/lokeError`, {
92
92
  json: {},
@@ -103,9 +103,9 @@ ava_1.default("passes through expose if available on a @loke/errors type", async
103
103
  type: "my_code",
104
104
  });
105
105
  });
106
- ava_1.default("passes through @loke/errors serialized in full", async (t) => {
107
- const app = express_1.default();
108
- const CustomError = errors_1.createErrorType({
106
+ (0, ava_1.default)("passes through @loke/errors serialized in full", async (t) => {
107
+ const app = (0, express_1.default)();
108
+ const CustomError = (0, errors_1.createErrorType)({
109
109
  message: "LOKE Error",
110
110
  code: "my_code",
111
111
  help: "Some help",
@@ -119,7 +119,7 @@ ava_1.default("passes through @loke/errors serialized in full", async (t) => {
119
119
  expose: [{ methodName: "lokeError" }],
120
120
  service: "hello-service",
121
121
  };
122
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }], { legacy: true }), __1.createErrorHandler());
122
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }], { legacy: true }), (0, __1.createErrorHandler)());
123
123
  const serverAddress = createServerAddress(app);
124
124
  const err = await t.throwsAsync(() => got_1.default.post(`${serverAddress}/rpc/lokeError`, {
125
125
  json: {},
@@ -136,12 +136,12 @@ ava_1.default("passes through @loke/errors serialized in full", async (t) => {
136
136
  something: "else",
137
137
  });
138
138
  });
139
- ava_1.default("logs error stacktraces if not exposed", async (t) => {
139
+ (0, ava_1.default)("logs error stacktraces if not exposed", async (t) => {
140
140
  let logged = "";
141
141
  const log = (str) => {
142
142
  logged += str;
143
143
  };
144
- const app = express_1.default();
144
+ const app = (0, express_1.default)();
145
145
  function stack1() {
146
146
  stack2();
147
147
  }
@@ -157,7 +157,7 @@ ava_1.default("logs error stacktraces if not exposed", async (t) => {
157
157
  expose: [{ methodName: "stackError" }],
158
158
  service: "hello-service",
159
159
  };
160
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }], { legacy: true }), __1.createErrorHandler({ log }));
160
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }], { legacy: true }), (0, __1.createErrorHandler)({ log }));
161
161
  const serverAddress = createServerAddress(app);
162
162
  await t.throwsAsync(() => got_1.default.post(`${serverAddress}/rpc/stackError`, {
163
163
  json: {},
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../test/errors.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AACvB,gDAAwB;AACxB,sDAA2C;AAC3C,8DAAqC;AACrC,8CAAsB;AACtB,2BAA+E;AAC/E,yCAA+C;AAE/C,8DAA8D;AAC9D,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAgB,EAAE,EAAE;IACvD,IAAI,EAAE,CAAC;IACP,wEAAwE;AAC1E,CAAC,CAAC;AAEF,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEjB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,OAAO,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,aAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,iBAAO,EAAE,CAAC;IACtB,MAAM,cAAc,GAAG;QACrB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QACtC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,wBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,sBAAkB,EAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACxC,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,iBAAiB,EAAE;QAC1C,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,uBAAuB;KACjC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,0DAA0D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC3E,MAAM,GAAG,GAAG,iBAAO,EAAE,CAAC;IAEtB,MAAM,cAAc,GAAG;QACrB,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,GAAG,GAA8B,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACzE,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,wBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,sBAAkB,EAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACxC,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,gBAAgB,EAAE;QACzC,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,sBAAsB;QAC/B,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,2DAA2D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC5E,MAAM,GAAG,GAAG,iBAAO,EAAE,CAAC;IAEtB,MAAM,WAAW,GAAG,wBAAe,CAAC;QAClC,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,MAAM,cAAc,GAAG;QACrB,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,IAAI,WAAW,EAAE,CAAC;QAC1B,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,wBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,sBAAkB,EAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACxC,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,gBAAgB,EAAE;QACzC,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpD,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;IACH,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;QACpB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,gDAAgD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjE,MAAM,GAAG,GAAG,iBAAO,EAAE,CAAC;IAEtB,MAAM,WAAW,GAAG,wBAAe,CAAC;QAClC,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG;QACrB,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,wBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,sBAAkB,EAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACxC,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,gBAAgB,EAAE;QACzC,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpD,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;IACH,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;QACpB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,aAAI,CAAC,uCAAuC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,iBAAO,EAAE,CAAC;IAEtB,SAAS,MAAM;QACb,MAAM,EAAE,CAAC;IACX,CAAC;IACD,SAAS,MAAM;QACb,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,cAAc,GAAG;QACrB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,EAAE,CAAC;QACX,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QACtC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,wBAAoB,CAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,sBAAkB,CAAC,EAAE,GAAG,EAAE,CAAC,CAC5B,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACvB,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,iBAAiB,EAAE;QAC1C,IAAI,EAAE,EAAE;KACT,CAAC,CACH,CAAC;IACF,CAAC,CAAC,IAAI,CACJ,MAAM,CAAC,UAAU,CACf,yEAAyE,CAC1E,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../test/errors.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AACvB,gDAAwB;AACxB,sDAA2C;AAC3C,8DAAqC;AACrC,8CAAsB;AACtB,2BAA+E;AAC/E,yCAA+C;AAE/C,8DAA8D;AAC9D,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAgB,EAAE,EAAE;IACvD,IAAI,EAAE,CAAC;IACP,wEAAwE;AAC1E,CAAC,CAAC;AAEF,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEjB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,OAAO,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,IAAA,aAAI,EAAC,yBAAyB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1C,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IACtB,MAAM,cAAc,GAAG;QACrB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QACtC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,IAAA,sBAAkB,GAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACxC,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,iBAAiB,EAAE;QAC1C,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,uBAAuB;KACjC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,0DAA0D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC3E,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,cAAc,GAAG;QACrB,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,GAAG,GAA8B,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACzE,GAAG,CAAC,IAAI,GAAG,YAAY,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,IAAA,sBAAkB,GAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACxC,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,gBAAgB,EAAE;QACzC,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC;IACF,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QAC7B,OAAO,EAAE,sBAAsB;QAC/B,IAAI,EAAE,YAAY;KACnB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,2DAA2D,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC5E,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,WAAW,GAAG,IAAA,wBAAe,EAAC;QAClC,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;QACjB,MAAM,EAAE,IAAI;KACb,CAAC,CAAC;IACH,MAAM,cAAc,GAAG;QACrB,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,IAAI,WAAW,EAAE,CAAC;QAC1B,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,IAAA,sBAAkB,GAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACxC,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,gBAAgB,EAAE;QACzC,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpD,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;IACH,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;QACpB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,YAAY;QACrB,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;KAChB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,gDAAgD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACjE,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,WAAW,GAAG,IAAA,wBAAe,EAAC;QAClC,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,WAAW;KAClB,CAAC,CAAC;IACH,MAAM,cAAc,GAAG;QACrB,SAAS,EAAE,GAAG,EAAE;YACd,MAAM,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACrC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,IAAA,sBAAkB,GAAE,CACrB,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,GAAG,GAAQ,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACxC,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,gBAAgB,EAAE;QACzC,IAAI,EAAE,EAAE;QACR,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;QACpD,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAC;IACH,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE;QACpB,QAAQ,EAAE,SAAS;QACnB,OAAO,EAAE,YAAY;QACrB,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,SAAS;QACf,SAAS,EAAE,MAAM;KAClB,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uCAAuC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxD,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,EAAE;QAC1B,MAAM,IAAI,GAAG,CAAC;IAChB,CAAC,CAAC;IACF,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,SAAS,MAAM;QACb,MAAM,EAAE,CAAC;IACX,CAAC;IACD,SAAS,MAAM;QACb,MAAM,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;IACD,MAAM,cAAc,GAAG;QACrB,UAAU,EAAE,GAAG,EAAE;YACf,MAAM,EAAE,CAAC;QACX,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC;QACtC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAClE,IAAA,sBAAkB,EAAC,EAAE,GAAG,EAAE,CAAC,CAC5B,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACvB,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,iBAAiB,EAAE;QAC1C,IAAI,EAAE,EAAE;KACT,CAAC,CACH,CAAC;IACF,CAAC,CAAC,IAAI,CACJ,MAAM,CAAC,UAAU,CACf,yEAAyE,CAC1E,CACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -23,8 +23,8 @@ function createServerAddress(app) {
23
23
  }
24
24
  return `http://localhost:${address.port}`;
25
25
  }
26
- ava_1.default("basic integration test", async (t) => {
27
- const app = express_1.default();
26
+ (0, ava_1.default)("basic integration test", async (t) => {
27
+ const app = (0, express_1.default)();
28
28
  const implementation = {
29
29
  hello: (x) => {
30
30
  return `success ${x.msg}`;
@@ -34,7 +34,7 @@ ava_1.default("basic integration test", async (t) => {
34
34
  expose: [{ methodName: "hello" }],
35
35
  service: "hello-service",
36
36
  };
37
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }]));
37
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }]));
38
38
  const serverAddress = createServerAddress(app);
39
39
  const body = await got_1.default
40
40
  .post(`${serverAddress}/rpc/hello-service/hello`, {
@@ -49,8 +49,8 @@ ava_1.default("basic integration test", async (t) => {
49
49
  json: { msg: "world" },
50
50
  }));
51
51
  });
52
- ava_1.default("legacy mode should expose methods under the root path", async (t) => {
53
- const app = express_1.default();
52
+ (0, ava_1.default)("legacy mode should expose methods under the root path", async (t) => {
53
+ const app = (0, express_1.default)();
54
54
  const implementation = {
55
55
  hello: (x) => {
56
56
  return `success ${x.msg}`;
@@ -60,7 +60,7 @@ ava_1.default("legacy mode should expose methods under the root path", async (t)
60
60
  expose: [{ methodName: "hello" }],
61
61
  service: "hello-service",
62
62
  };
63
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }], { legacy: true }));
63
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }], { legacy: true }));
64
64
  const serverAddress = createServerAddress(app);
65
65
  const body = await got_1.default
66
66
  .post(`${serverAddress}/rpc/hello`, {
@@ -69,8 +69,8 @@ ava_1.default("legacy mode should expose methods under the root path", async (t)
69
69
  .json();
70
70
  t.is(body, "success world");
71
71
  });
72
- ava_1.default("legacy mode should ALSO expose methods under the new nested path", async (t) => {
73
- const app = express_1.default();
72
+ (0, ava_1.default)("legacy mode should ALSO expose methods under the new nested path", async (t) => {
73
+ const app = (0, express_1.default)();
74
74
  const implementation = {
75
75
  hello: (x) => {
76
76
  return `success ${x.msg}`;
@@ -80,7 +80,7 @@ ava_1.default("legacy mode should ALSO expose methods under the new nested path"
80
80
  expose: [{ methodName: "hello" }],
81
81
  service: "hello-service",
82
82
  };
83
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }], { legacy: true }));
83
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }], { legacy: true }));
84
84
  const serverAddress = createServerAddress(app);
85
85
  const body = await got_1.default
86
86
  .post(`${serverAddress}/rpc/hello-service/hello`, {
@@ -89,8 +89,8 @@ ava_1.default("legacy mode should ALSO expose methods under the new nested path"
89
89
  .json();
90
90
  t.is(body, "success world");
91
91
  });
92
- ava_1.default("exposes metadata and documentation for a single service", async (t) => {
93
- const app = express_1.default();
92
+ (0, ava_1.default)("exposes metadata and documentation for a single service", async (t) => {
93
+ const app = (0, express_1.default)();
94
94
  const implementation = { hello: (x) => `success ${x.msg}` };
95
95
  const meta = {
96
96
  expose: [
@@ -106,10 +106,10 @@ It just returns success.`,
106
106
  help: `This is the help for the service.
107
107
  Can include **Markdown**.`,
108
108
  };
109
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }]));
109
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }]));
110
110
  const serverAddress = createServerAddress(app);
111
111
  // All service metadata
112
- const allMeta = (await got_1.default(`${serverAddress}/rpc/hello-service`, {
112
+ const allMeta = (await (0, got_1.default)(`${serverAddress}/rpc/hello-service`, {
113
113
  responseType: "json",
114
114
  })).body;
115
115
  t.deepEqual(allMeta, {
@@ -126,7 +126,7 @@ Can include **Markdown**.`,
126
126
  ],
127
127
  });
128
128
  // Method metadata
129
- const singleMeta = await got_1.default(`${serverAddress}/rpc/hello-service/hello`).json();
129
+ const singleMeta = await (0, got_1.default)(`${serverAddress}/rpc/hello-service/hello`).json();
130
130
  t.deepEqual(singleMeta, {
131
131
  methodName: "hello",
132
132
  paramNames: ["greeting"],
@@ -134,8 +134,8 @@ Can include **Markdown**.`,
134
134
  help: "This is a simple method.\nIt just returns success.",
135
135
  });
136
136
  });
137
- ava_1.default("exposes metadata and documentation in legacy mode", async (t) => {
138
- const app = express_1.default();
137
+ (0, ava_1.default)("exposes metadata and documentation in legacy mode", async (t) => {
138
+ const app = (0, express_1.default)();
139
139
  const implementation = { hello: (x) => `success ${x.msg}` };
140
140
  const meta = {
141
141
  expose: [
@@ -151,10 +151,10 @@ It just returns success.`,
151
151
  help: `This is the help for the service.
152
152
  Can include **Markdown**.`,
153
153
  };
154
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([{ implementation, meta }], { legacy: true }));
154
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([{ implementation, meta }], { legacy: true }));
155
155
  const serverAddress = createServerAddress(app);
156
156
  // All service metadata
157
- const allMeta = (await got_1.default(`${serverAddress}/rpc`, {
157
+ const allMeta = (await (0, got_1.default)(`${serverAddress}/rpc`, {
158
158
  responseType: "json",
159
159
  })).body;
160
160
  t.deepEqual(allMeta, {
@@ -175,7 +175,7 @@ Can include **Markdown**.`,
175
175
  ],
176
176
  });
177
177
  // Method metadata
178
- const singleMeta = await got_1.default(`${serverAddress}/rpc/hello`).json();
178
+ const singleMeta = await (0, got_1.default)(`${serverAddress}/rpc/hello`).json();
179
179
  t.deepEqual(singleMeta, {
180
180
  methodName: "hello",
181
181
  paramNames: ["greeting"],
@@ -183,11 +183,11 @@ Can include **Markdown**.`,
183
183
  help: "This is a simple method.\nIt just returns success.",
184
184
  });
185
185
  });
186
- ava_1.default("exposes metadata for all services in handler", async (t) => {
187
- const app = express_1.default();
186
+ (0, ava_1.default)("exposes metadata for all services in handler", async (t) => {
187
+ const app = (0, express_1.default)();
188
188
  const service1 = {
189
189
  implementation: {
190
- hello: (x) => {
190
+ hello1: (x) => {
191
191
  return `success ${x.msg}`;
192
192
  },
193
193
  },
@@ -199,7 +199,7 @@ ava_1.default("exposes metadata for all services in handler", async (t) => {
199
199
  };
200
200
  const service2 = {
201
201
  implementation: {
202
- hello: (x) => {
202
+ hello2: (x) => {
203
203
  return `success ${x.msg}`;
204
204
  },
205
205
  },
@@ -209,7 +209,7 @@ ava_1.default("exposes metadata for all services in handler", async (t) => {
209
209
  help: "hello",
210
210
  },
211
211
  };
212
- app.use("/rpc", body_parser_1.default.json(), inspect, __1.createRequestHandler([service1, service2]));
212
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([service1, service2]));
213
213
  const serverAddress = createServerAddress(app);
214
214
  const body = await got_1.default.get(`${serverAddress}/rpc`).json();
215
215
  t.deepEqual(body, {
@@ -1 +1 @@
1
- {"version":3,"file":"express.js","sourceRoot":"","sources":["../../test/express.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"express.js","sourceRoot":"","sources":["../../test/express.ts"],"names":[],"mappings":";;;;;AAAA,8CAAuB;AACvB,gDAAwB;AACxB,sDAA2C;AAC3C,8DAAqC;AACrC,8CAAsB;AACtB,2BAA2D;AAE3D,8DAA8D;AAC9D,MAAM,OAAO,GAAG,CAAC,GAAQ,EAAE,GAAQ,EAAE,IAAgB,EAAE,EAAE;IACvD,IAAI,EAAE,CAAC;IACP,wEAAwE;AAC1E,CAAC,CAAC;AAEF,SAAS,mBAAmB,CAAC,GAAY;IACvC,MAAM,MAAM,GAAG,cAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAEtC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEjB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;IACjC,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC3C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;KAC5C;IAED,OAAO,oBAAoB,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,IAAA,aAAI,EAAC,wBAAwB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACzC,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,cAAc,GAAG;QACrB,KAAK,EAAE,CAAC,CAAkB,EAAE,EAAE;YAC5B,OAAO,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CACjD,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,aAAG;SACnB,IAAI,CAAC,GAAG,aAAa,0BAA0B,EAAE;QAChD,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;KACvB,CAAC;SACD,IAAI,EAAE,CAAC;IAEV,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IAE5B,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACvB,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,kCAAkC,EAAE;QAC3D,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;KACvB,CAAC,CACH,CAAC;IAEF,MAAM,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CACvB,aAAG,CAAC,IAAI,CAAC,GAAG,aAAa,oCAAoC,EAAE;QAC7D,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;KACvB,CAAC,CACH,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,uDAAuD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACxE,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,cAAc,GAAG;QACrB,KAAK,EAAE,CAAC,CAAkB,EAAE,EAAE;YAC5B,OAAO,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACnE,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,aAAG;SACnB,IAAI,CAAC,GAAG,aAAa,YAAY,EAAE;QAClC,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;KACvB,CAAC;SACD,IAAI,EAAE,CAAC;IAEV,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,kEAAkE,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACnF,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,cAAc,GAAG;QACrB,KAAK,EAAE,CAAC,CAAkB,EAAE,EAAE;YAC5B,OAAO,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;IACF,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;QACjC,OAAO,EAAE,eAAe;KACzB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACnE,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,aAAG;SACnB,IAAI,CAAC,GAAG,aAAa,0BAA0B,EAAE;QAChD,IAAI,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;KACvB,CAAC;SACD,IAAI,EAAE,CAAC;IAEV,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,yDAAyD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC1E,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,CAAkB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;IAC7E,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE;YACN;gBACE,UAAU,EAAE,OAAO;gBACnB,aAAa,EAAE,KAAK;gBACpB,UAAU,EAAE,CAAC,UAAU,CAAC;gBACxB,IAAI,EAAE;yBACW;aAClB;SACF;QACD,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE;0BACgB;KACvB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CACjD,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,uBAAuB;IACvB,MAAM,OAAO,GAAG,CACd,MAAM,IAAA,aAAG,EAAC,GAAG,aAAa,oBAAoB,EAAE;QAC9C,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC,IAAI,CAAC;IACP,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;QACnB,WAAW,EAAE,eAAe;QAC5B,QAAQ,EAAE,KAAK;QACf,IAAI,EAAE,8DAA8D;QACpE,UAAU,EAAE;YACV;gBACE,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,CAAC,UAAU,CAAC;gBACxB,aAAa,EAAE,KAAK;gBACpB,IAAI,EAAE,oDAAoD;aAC3D;SACF;KACF,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,IAAA,aAAG,EAC1B,GAAG,aAAa,0BAA0B,CAC3C,CAAC,IAAI,EAAE,CAAC;IACT,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE;QACtB,UAAU,EAAE,OAAO;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,oDAAoD;KAC3D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,mDAAmD,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IACpE,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,cAAc,GAAG,EAAE,KAAK,EAAE,CAAC,CAAkB,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC;IAC7E,MAAM,IAAI,GAA0C;QAClD,MAAM,EAAE;YACN;gBACE,UAAU,EAAE,OAAO;gBACnB,aAAa,EAAE,KAAK;gBACpB,UAAU,EAAE,CAAC,UAAU,CAAC;gBACxB,IAAI,EAAE;yBACW;aAClB;SACF;QACD,OAAO,EAAE,eAAe;QACxB,IAAI,EAAE;0BACgB;KACvB,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CACnE,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,uBAAuB;IACvB,MAAM,OAAO,GAAG,CACd,MAAM,IAAA,aAAG,EAAC,GAAG,aAAa,MAAM,EAAE;QAChC,YAAY,EAAE,MAAM;KACrB,CAAC,CACH,CAAC,IAAI,CAAC;IACP,CAAC,CAAC,SAAS,CAAC,OAAO,EAAE;QACnB,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,eAAe;gBAC5B,QAAQ,EAAE,KAAK;gBACf,IAAI,EAAE,8DAA8D;gBACpE,UAAU,EAAE;oBACV;wBACE,UAAU,EAAE,OAAO;wBACnB,UAAU,EAAE,CAAC,UAAU,CAAC;wBACxB,aAAa,EAAE,KAAK;wBACpB,IAAI,EAAE,oDAAoD;qBAC3D;iBACF;aACF;SACF;KACF,CAAC,CAAC;IAEH,kBAAkB;IAClB,MAAM,UAAU,GAAG,MAAM,IAAA,aAAG,EAAC,GAAG,aAAa,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,CAAC,CAAC,SAAS,CAAC,UAAU,EAAE;QACtB,UAAU,EAAE,OAAO;QACnB,UAAU,EAAE,CAAC,UAAU,CAAC;QACxB,aAAa,EAAE,KAAK;QACpB,IAAI,EAAE,oDAAoD;KAC3D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAA,aAAI,EAAC,8CAA8C,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;IAC/D,MAAM,GAAG,GAAG,IAAA,iBAAO,GAAE,CAAC;IAEtB,MAAM,QAAQ,GAAG;QACf,cAAc,EAAE;YACd,MAAM,EAAE,CAAC,CAAkB,EAAE,EAAE;gBAC7B,OAAO,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;SACF;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAClC,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,OAAO;SACd;KACF,CAAC;IACF,MAAM,QAAQ,GAAG;QACf,cAAc,EAAE;YACd,MAAM,EAAE,CAAC,CAAkB,EAAE,EAAE;gBAC7B,OAAO,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;YAC5B,CAAC;SACF;QACD,IAAI,EAAE;YACJ,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAClC,OAAO,EAAE,WAAW;YACpB,IAAI,EAAE,OAAO;SACd;KACF,CAAC;IAEF,GAAG,CAAC,GAAG,CACL,MAAM,EACN,qBAAU,CAAC,IAAI,EAAE,EACjB,OAAO,EACP,IAAA,wBAAoB,EAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAC3C,CAAC;IAEF,MAAM,aAAa,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAE/C,MAAM,IAAI,GAAG,MAAM,aAAG,CAAC,GAAG,CAAC,GAAG,aAAa,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1D,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE;QAChB,QAAQ,EAAE;YACR;gBACE,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,eAAe;wBACrB,UAAU,EAAE,QAAQ;wBACpB,aAAa,EAAE,KAAK;wBACpB,UAAU,EAAE,EAAE;qBACf;iBACF;aACF;YACD;gBACE,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,OAAO;gBACb,QAAQ,EAAE,KAAK;gBACf,UAAU,EAAE;oBACV;wBACE,IAAI,EAAE,eAAe;wBACrB,UAAU,EAAE,QAAQ;wBACpB,aAAa,EAAE,KAAK;wBACpB,UAAU,EAAE,EAAE;qBACf;iBACF;aACF;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const ava_1 = __importDefault(require("ava"));
7
+ const http_1 = __importDefault(require("http"));
8
+ const express_1 = __importDefault(require("express"));
9
+ const body_parser_1 = __importDefault(require("body-parser"));
10
+ const got_1 = __importDefault(require("got"));
11
+ const __1 = require("../");
12
+ const schema_1 = require("../schema");
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const inspect = (req, res, next) => {
15
+ next();
16
+ };
17
+ function createServerAddress(app) {
18
+ const server = http_1.default.createServer(app);
19
+ server.listen(0);
20
+ const address = server.address();
21
+ if (!address || typeof address !== "object") {
22
+ throw new Error("No server address found");
23
+ }
24
+ return `http://localhost:${address.port}`;
25
+ }
26
+ (0, ava_1.default)("should validate schemas", async (t) => {
27
+ const app = (0, express_1.default)();
28
+ const untypedService = {
29
+ foo: (x) => {
30
+ return `success ${x.msg}`;
31
+ },
32
+ };
33
+ const service1 = {
34
+ bar: async (x) => {
35
+ return x.user;
36
+ },
37
+ };
38
+ class Service2Imp {
39
+ async baz(x) {
40
+ return `success ${x.msg}`;
41
+ }
42
+ }
43
+ // interface Service2 {
44
+ // baz: (x: { msg: string; user?: User }) => Promise<string>;
45
+ // }
46
+ const service2 = new Service2Imp();
47
+ app.use("/rpc", body_parser_1.default.json(), inspect, (0, __1.createRequestHandler)([
48
+ {
49
+ implementation: untypedService,
50
+ meta: { service: "untypedService", expose: [{ methodName: "foo" }] },
51
+ },
52
+ (0, schema_1.serviceWithSchema)(service1, {
53
+ name: "service1",
54
+ definitions: {
55
+ User: {
56
+ properties: {
57
+ name: { type: "string" },
58
+ },
59
+ },
60
+ },
61
+ methods: {
62
+ bar: {
63
+ requestTypeDef: {
64
+ properties: {
65
+ message: { type: "string" },
66
+ user: { ref: "User" },
67
+ },
68
+ optionalProperties: {
69
+ thing: {},
70
+ },
71
+ },
72
+ responseTypeDef: { ref: "User" },
73
+ },
74
+ },
75
+ }),
76
+ (0, schema_1.serviceWithSchema)(service2, {
77
+ name: "service2",
78
+ definitions: {
79
+ User: {
80
+ properties: {
81
+ name: { type: "string" },
82
+ },
83
+ },
84
+ },
85
+ methods: {
86
+ baz: {
87
+ requestTypeDef: {
88
+ properties: {
89
+ msg: { type: "string" },
90
+ },
91
+ optionalProperties: {
92
+ user: { ref: "User" },
93
+ },
94
+ },
95
+ responseTypeDef: { type: "string" },
96
+ },
97
+ },
98
+ }),
99
+ ]), (0, __1.createErrorHandler)());
100
+ const serverAddress = createServerAddress(app);
101
+ const body = await got_1.default
102
+ .post(`${serverAddress}/rpc/service1/bar`, {
103
+ json: { message: "world", user: { name: "1" } },
104
+ })
105
+ .json();
106
+ t.deepEqual(body, { name: "1" });
107
+ const err = await t.throwsAsync(() => got_1.default
108
+ .post(`${serverAddress}/rpc/service1/bar`, {
109
+ json: { message: "c", user: { name: 1 } },
110
+ })
111
+ .json());
112
+ t.deepEqual(JSON.parse(err.response.body), {
113
+ message: "user.name must be string",
114
+ code: "validation",
115
+ type: "https://errors.loke.global/@loke/http-rpc/validation",
116
+ instancePath: "/user/name",
117
+ schemaPath: "/definitions/User/properties/name/type",
118
+ });
119
+ });
120
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../test/schema.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loke/http-rpc",
3
- "version": "5.0.0",
3
+ "version": "5.1.0-beta.0",
4
4
  "description": "",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -30,11 +30,11 @@
30
30
  "@loke/errors": "0.2.1",
31
31
  "@types/body-parser": "^1.19.0",
32
32
  "@types/express": "^4.17.8",
33
- "@typescript-eslint/eslint-plugin": "^4.1.0",
34
- "@typescript-eslint/parser": "^4.1.0",
33
+ "@typescript-eslint/eslint-plugin": "^5.36.1",
34
+ "@typescript-eslint/parser": "^5.36.1",
35
35
  "ava": "^3.12.1",
36
36
  "body-parser": "^1.15.2",
37
- "eslint": "^7.8.1",
37
+ "eslint": "^8.23.0",
38
38
  "eslint-config-prettier": "^6.11.0",
39
39
  "eslint-plugin-ava": "^11.0.0",
40
40
  "eslint-plugin-prettier": "^3.1.4",
@@ -42,13 +42,13 @@
42
42
  "got": "^11.6.2",
43
43
  "prettier": "2.1.1",
44
44
  "prom-client": "^12.0.0",
45
- "ts-node": "^9.0.0",
46
- "typescript": "^4.0.2"
45
+ "ts-node": "^10.9.1",
46
+ "typescript": "^4.8.2"
47
47
  },
48
48
  "peerDependencies": {
49
49
  "prom-client": "12.x"
50
50
  },
51
51
  "dependencies": {
52
- "router": "^1.3.5"
52
+ "ajv": "^8.11.0"
53
53
  }
54
54
  }