fastify-flux 2.31.2 → 3.0.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/dist/flux/controllers.d.ts +13 -1
- package/dist/flux/controllers.d.ts.map +1 -1
- package/dist/flux/controllers.js +86 -7
- package/dist/flux/controllers.js.map +1 -1
- package/dist/meta.d.ts +0 -1
- package/dist/meta.d.ts.map +1 -1
- package/dist/meta.js +1 -9
- package/dist/meta.js.map +1 -1
- package/dist/types.d.ts +2 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/helper/schema.d.ts +0 -48
- package/dist/helper/schema.d.ts.map +0 -1
- package/dist/helper/schema.js +0 -106
- package/dist/helper/schema.js.map +0 -1
|
@@ -1,4 +1,16 @@
|
|
|
1
|
-
import { FluxConfig } from '..';
|
|
1
|
+
import { FluxConfig, FluxRoute } from '..';
|
|
2
|
+
export declare function getSchemaParams(route: FluxRoute): {
|
|
3
|
+
type: string;
|
|
4
|
+
properties: {
|
|
5
|
+
[key: string]: {
|
|
6
|
+
type: string;
|
|
7
|
+
};
|
|
8
|
+
};
|
|
9
|
+
} | undefined;
|
|
10
|
+
export declare function getSchemaBody(route: FluxRoute): any;
|
|
11
|
+
export declare function getSchemaResponse(config: FluxConfig, route: FluxRoute): {
|
|
12
|
+
[x: number]: any;
|
|
13
|
+
};
|
|
2
14
|
export declare function registerController(controller: {
|
|
3
15
|
new (): any;
|
|
4
16
|
}, options: FluxConfig): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../src/flux/controllers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"controllers.d.ts","sourceRoot":"","sources":["../../src/flux/controllers.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAc,MAAM,IAAI,CAAC;AAMvD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS;;;;kBASD,MAAM;;;cAYpD;AAkBD,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,OAajB;AAeD,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,SAAS;;EAmCjB;AAyCD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE;IAAE,QAAO,GAAG,CAAA;CAAE,EAC1B,OAAO,EAAE,UAAU,QAyBpB"}
|
package/dist/flux/controllers.js
CHANGED
|
@@ -1,21 +1,100 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerController = void 0;
|
|
3
|
+
exports.registerController = exports.getSchemaResponse = exports.getSchemaBody = exports.getSchemaParams = void 0;
|
|
4
4
|
const call_parameter_1 = require("../helper/call-parameter");
|
|
5
|
-
const schema_1 = require("../helper/schema");
|
|
6
5
|
const meta_1 = require("../meta");
|
|
7
6
|
const controllerMeta = (0, meta_1.getFluxControllerMeta)();
|
|
8
|
-
|
|
7
|
+
function getSchemaParams(route) {
|
|
8
|
+
const matches = route.url.match(/:[a-zA-Z]+/g);
|
|
9
|
+
if (!matches || !matches.length) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const params = {
|
|
13
|
+
type: 'object',
|
|
14
|
+
properties: {},
|
|
15
|
+
};
|
|
16
|
+
matches.forEach((element) => {
|
|
17
|
+
const nameShort = element.replace(':', '');
|
|
18
|
+
const found = route.params.find((x) => x.name === nameShort);
|
|
19
|
+
if (found) {
|
|
20
|
+
params.properties[nameShort] = { type: found.type };
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
return params;
|
|
24
|
+
}
|
|
25
|
+
exports.getSchemaParams = getSchemaParams;
|
|
26
|
+
function getSchemaQuerystring(route) {
|
|
27
|
+
const query = route.params.filter(x => x.name === 'query');
|
|
28
|
+
if (query.length > 1) {
|
|
29
|
+
throw new Error(`too many potential query params for ${route.url}`);
|
|
30
|
+
}
|
|
31
|
+
if (!query.length) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
return query[0].schema;
|
|
35
|
+
}
|
|
36
|
+
function getSchemaBody(route) {
|
|
37
|
+
const body = route.params.filter((x) => x.name === 'body');
|
|
38
|
+
if (body.length > 1) {
|
|
39
|
+
throw new Error(`too many potential body params for ${route.url}`);
|
|
40
|
+
}
|
|
41
|
+
if (!body.length) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
return body[0].schema;
|
|
45
|
+
}
|
|
46
|
+
exports.getSchemaBody = getSchemaBody;
|
|
47
|
+
function addSchema(config, schema) {
|
|
48
|
+
if (config.fastify.getSchema(schema['$id'])) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (schema.type === 'array') {
|
|
52
|
+
config.fastify.addSchema({ '$id': schema['$id'], ...schema.items });
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
config.fastify.addSchema(schema);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
function getSchemaResponse(config, route) {
|
|
59
|
+
const name = route.returnType;
|
|
60
|
+
if (name === 'any') {
|
|
61
|
+
return {};
|
|
62
|
+
}
|
|
63
|
+
if (name === 'string') {
|
|
64
|
+
return {
|
|
65
|
+
[route.statusCode]: {
|
|
66
|
+
type: 'string',
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
if (name === 'number') {
|
|
71
|
+
return {
|
|
72
|
+
[route.statusCode]: {
|
|
73
|
+
type: 'number',
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
if (name) {
|
|
78
|
+
addSchema(config, route.returnSchema);
|
|
79
|
+
return {
|
|
80
|
+
[route.statusCode]: route.returnSchema,
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
return {
|
|
84
|
+
[route.statusCode]: {},
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
exports.getSchemaResponse = getSchemaResponse;
|
|
9
88
|
function handleRoute(config, route, f) {
|
|
10
89
|
const { url, method, tags, statusCode } = route;
|
|
11
90
|
const routeMappers = (0, call_parameter_1.getRouteMappers)(config, route);
|
|
12
91
|
const s = {
|
|
13
92
|
operationId: f.name,
|
|
14
93
|
tags,
|
|
15
|
-
params:
|
|
16
|
-
querystring:
|
|
17
|
-
body:
|
|
18
|
-
response:
|
|
94
|
+
params: getSchemaParams(route),
|
|
95
|
+
querystring: getSchemaQuerystring(route),
|
|
96
|
+
body: getSchemaBody(route),
|
|
97
|
+
response: getSchemaResponse(config, route),
|
|
19
98
|
};
|
|
20
99
|
// remove undefined value with stringify and parse
|
|
21
100
|
Object.keys(s).forEach((key) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/flux/controllers.ts"],"names":[],"mappings":";;;AAEA,6DAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/flux/controllers.ts"],"names":[],"mappings":"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"}
|
package/dist/meta.d.ts
CHANGED
package/dist/meta.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":"AAEA,wBAAgB,qBAAqB,QAQpC"}
|
package/dist/meta.js
CHANGED
|
@@ -1,15 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getFluxControllerMeta =
|
|
4
|
-
const schema = require(process.cwd() + '/dist/flux-schema.json');
|
|
3
|
+
exports.getFluxControllerMeta = void 0;
|
|
5
4
|
const controllerMeta = require(process.cwd() + '/dist/flux-controller.json');
|
|
6
|
-
function getFluxJsonSchema() {
|
|
7
|
-
if (!schema) {
|
|
8
|
-
throw new Error('The file flux-schema.json is missing. Please run flux start to generate it.');
|
|
9
|
-
}
|
|
10
|
-
return schema;
|
|
11
|
-
}
|
|
12
|
-
exports.getFluxJsonSchema = getFluxJsonSchema;
|
|
13
5
|
function getFluxControllerMeta() {
|
|
14
6
|
if (!controllerMeta) {
|
|
15
7
|
throw new Error('The file flux-controller.json is missing. Please run flux start to generate it.');
|
package/dist/meta.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":";;;AAAA,MAAM,
|
|
1
|
+
{"version":3,"file":"meta.js","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,4BAA4B,CAAC,CAAC;AAE7E,SAAgB,qBAAqB;IACnC,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,iFAAiF,CAClF,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AARD,sDAQC"}
|
package/dist/types.d.ts
CHANGED
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,YAAY,EACZ,cAAc,EACd,WAAW,EACZ,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,GAAG,CAAA;KAAE,EAAE,CAAC;IACtD,YAAY,EAAE,GAAG,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,KAAK,OAAO,CAAC;CAC7E;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,CAAC;AAE3C,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,oBAAqB,SAAQ,SAAS;KAAI;CACrD"}
|
package/package.json
CHANGED
|
@@ -7,20 +7,20 @@
|
|
|
7
7
|
"author": "",
|
|
8
8
|
"license": "ISC",
|
|
9
9
|
"devDependencies": {
|
|
10
|
-
"@fastify/swagger": "8.
|
|
10
|
+
"@fastify/swagger": "8.13.0",
|
|
11
11
|
"@fastify/swagger-ui": "2.0.1",
|
|
12
12
|
"@types/jest": "29.5.11",
|
|
13
13
|
"@types/lodash": "4.14.202",
|
|
14
14
|
"esbuild-jest": "0.5.0",
|
|
15
|
-
"fastify": "4.25.
|
|
15
|
+
"fastify": "4.25.2",
|
|
16
16
|
"jest": "29.7.0",
|
|
17
17
|
"ts-jest": "29.1.1",
|
|
18
18
|
"typescript": "5.3.3"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"@fastify/swagger": "8.
|
|
21
|
+
"@fastify/swagger": "8.13.0",
|
|
22
22
|
"@fastify/swagger-ui": "2.0.1",
|
|
23
|
-
"fastify": "4.25.
|
|
23
|
+
"fastify": "4.25.2"
|
|
24
24
|
},
|
|
25
25
|
"files": [
|
|
26
26
|
"dist"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"fastify-plugin": "4.5.1",
|
|
30
30
|
"lodash": "4.17.21"
|
|
31
31
|
},
|
|
32
|
-
"version": "
|
|
32
|
+
"version": "3.0.0",
|
|
33
33
|
"scripts": {
|
|
34
34
|
"clean": "rm -rf dist/",
|
|
35
35
|
"build": "tsc",
|
package/dist/helper/schema.d.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import { FluxConfig, FluxRoute } from '../types';
|
|
2
|
-
interface schemas {
|
|
3
|
-
[k: string]: any;
|
|
4
|
-
}
|
|
5
|
-
export declare function getSchemaParams(route: FluxRoute): {
|
|
6
|
-
type: string;
|
|
7
|
-
properties: {
|
|
8
|
-
[key: string]: {
|
|
9
|
-
type: string;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
} | undefined;
|
|
13
|
-
export declare function getSchemaQuerystring(config: FluxConfig, route: FluxRoute, s: schemas): {
|
|
14
|
-
$id: string;
|
|
15
|
-
} | {
|
|
16
|
-
type: string;
|
|
17
|
-
items: {
|
|
18
|
-
$id: string;
|
|
19
|
-
};
|
|
20
|
-
} | undefined;
|
|
21
|
-
export declare function getSchemaResponse(config: FluxConfig, route: FluxRoute, s: schemas): {
|
|
22
|
-
[x: number]: {
|
|
23
|
-
type: string;
|
|
24
|
-
};
|
|
25
|
-
} | {
|
|
26
|
-
[x: number]: {
|
|
27
|
-
type: string;
|
|
28
|
-
items: {
|
|
29
|
-
$id: string;
|
|
30
|
-
};
|
|
31
|
-
};
|
|
32
|
-
} | {
|
|
33
|
-
[x: number]: {
|
|
34
|
-
$id: string;
|
|
35
|
-
};
|
|
36
|
-
} | {
|
|
37
|
-
[x: number]: {};
|
|
38
|
-
};
|
|
39
|
-
export declare function getSchemaBody(config: FluxConfig, route: FluxRoute, s: schemas): {
|
|
40
|
-
$id: string;
|
|
41
|
-
} | {
|
|
42
|
-
type: string;
|
|
43
|
-
items: {
|
|
44
|
-
$id: string;
|
|
45
|
-
};
|
|
46
|
-
} | undefined;
|
|
47
|
-
export {};
|
|
48
|
-
//# sourceMappingURL=schema.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/helper/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEjD,UAAU,OAAO;IACf,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC;CAClB;AAeD,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS;;;;kBASD,MAAM;;;cAYpD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,SAAS,EAChB,CAAC,EAAE,OAAO;;;;;;;cAoBX;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,SAAS,EAChB,CAAC,EAAE,OAAO;;;;;;;;;;;;;;;;;EA0CX;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,SAAS,EAChB,CAAC,EAAE,OAAO;;;;;;;cAoBX"}
|
package/dist/helper/schema.js
DELETED
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSchemaBody = exports.getSchemaResponse = exports.getSchemaQuerystring = exports.getSchemaParams = void 0;
|
|
4
|
-
function getSchemaOrThrow(config, name, s) {
|
|
5
|
-
if (!s[name]) {
|
|
6
|
-
throw new Error(`Schema ${name} not found.`);
|
|
7
|
-
}
|
|
8
|
-
const schema = s[name];
|
|
9
|
-
if (!config.fastify.getSchema(schema['$id'])) {
|
|
10
|
-
config.fastify.addSchema(schema);
|
|
11
|
-
}
|
|
12
|
-
return schema;
|
|
13
|
-
}
|
|
14
|
-
function getSchemaParams(route) {
|
|
15
|
-
const matches = route.url.match(/:[a-zA-Z]+/g);
|
|
16
|
-
if (!matches || !matches.length) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
const params = {
|
|
20
|
-
type: 'object',
|
|
21
|
-
properties: {},
|
|
22
|
-
};
|
|
23
|
-
matches.forEach((element) => {
|
|
24
|
-
const nameShort = element.replace(':', '');
|
|
25
|
-
const found = route.params.find((x) => x.name === nameShort);
|
|
26
|
-
if (found) {
|
|
27
|
-
params.properties[nameShort] = { type: found.type };
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
return params;
|
|
31
|
-
}
|
|
32
|
-
exports.getSchemaParams = getSchemaParams;
|
|
33
|
-
function getSchemaQuerystring(config, route, s) {
|
|
34
|
-
const query = route.params.filter((x) => x.name === 'query');
|
|
35
|
-
if (query.length > 1) {
|
|
36
|
-
throw new Error(`too many potential query params for ${route.url}`);
|
|
37
|
-
}
|
|
38
|
-
if (!query.length) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
let name = query[0].type;
|
|
42
|
-
if (name.includes('[]')) {
|
|
43
|
-
name = name.replace('[]', '');
|
|
44
|
-
return { type: 'array', items: getSchemaOrThrow(config, name, s) };
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return getSchemaOrThrow(config, name, s);
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
exports.getSchemaQuerystring = getSchemaQuerystring;
|
|
51
|
-
function getSchemaResponse(config, route, s) {
|
|
52
|
-
const name = route.returnType;
|
|
53
|
-
if (name === 'any') {
|
|
54
|
-
return {};
|
|
55
|
-
}
|
|
56
|
-
if (name === 'string') {
|
|
57
|
-
return {
|
|
58
|
-
[route.statusCode]: {
|
|
59
|
-
type: 'string',
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
}
|
|
63
|
-
if (name === 'number') {
|
|
64
|
-
return {
|
|
65
|
-
[route.statusCode]: {
|
|
66
|
-
type: 'number',
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
if (name && name.includes('[]')) {
|
|
71
|
-
return {
|
|
72
|
-
[route.statusCode]: {
|
|
73
|
-
type: 'array',
|
|
74
|
-
items: getSchemaOrThrow(config, name.replace('[]', ''), s),
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
if (name) {
|
|
79
|
-
return {
|
|
80
|
-
[route.statusCode]: getSchemaOrThrow(config, name, s),
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return {
|
|
84
|
-
[route.statusCode]: {},
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
exports.getSchemaResponse = getSchemaResponse;
|
|
88
|
-
function getSchemaBody(config, route, s) {
|
|
89
|
-
const body = route.params.filter((x) => x.name === 'body');
|
|
90
|
-
if (body.length > 1) {
|
|
91
|
-
throw new Error(`too many potential body params for ${route.url}`);
|
|
92
|
-
}
|
|
93
|
-
if (!body.length) {
|
|
94
|
-
return;
|
|
95
|
-
}
|
|
96
|
-
let name = body[0].type;
|
|
97
|
-
if (name.includes('[]')) {
|
|
98
|
-
name = name.replace('[]', '');
|
|
99
|
-
return { type: 'array', items: getSchemaOrThrow(config, name, s) };
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
return getSchemaOrThrow(config, name, s);
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
exports.getSchemaBody = getSchemaBody;
|
|
106
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/helper/schema.ts"],"names":[],"mappings":"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"}
|