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.
@@ -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,EAAyB,MAAM,IAAI,CAAC;AAiDvD,wBAAgB,kBAAkB,CAChC,UAAU,EAAE;IAAE,QAAQ,GAAG,CAAA;CAAE,EAC3B,OAAO,EAAE,UAAU,QAyBpB"}
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"}
@@ -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
- const schema = (0, meta_1.getFluxJsonSchema)();
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: (0, schema_1.getSchemaParams)(route),
16
- querystring: (0, schema_1.getSchemaQuerystring)(config, route, schema),
17
- body: (0, schema_1.getSchemaBody)(config, route, schema),
18
- response: (0, schema_1.getSchemaResponse)(config, route, schema),
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":"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"}
1
+ {"version":3,"file":"controllers.js","sourceRoot":"","sources":["../../src/flux/controllers.ts"],"names":[],"mappings":"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"}
package/dist/meta.d.ts CHANGED
@@ -1,3 +1,2 @@
1
- export declare function getFluxJsonSchema(): any;
2
1
  export declare function getFluxControllerMeta(): any;
3
2
  //# sourceMappingURL=meta.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../src/meta.ts"],"names":[],"mappings":"AAGA,wBAAgB,iBAAiB,QAQhC;AAED,wBAAgB,qBAAqB,QAQpC"}
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 = exports.getFluxJsonSchema = void 0;
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,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,wBAAwB,CAAC,CAAC;AACjE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,4BAA4B,CAAC,CAAC;AAE7E,SAAgB,iBAAiB;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CACb,6EAA6E,CAC9E,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AARD,8CAQC;AAED,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"}
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
@@ -16,7 +16,9 @@ export interface FluxRoute {
16
16
  params: {
17
17
  name: string;
18
18
  type: string;
19
+ schema: any;
19
20
  }[];
21
+ returnSchema: any;
20
22
  auth?: unknown;
21
23
  [key: string]: unknown;
22
24
  }
@@ -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;IACzC,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;KAAG;CACpD"}
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.12.1",
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.1",
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.12.1",
21
+ "@fastify/swagger": "8.13.0",
22
22
  "@fastify/swagger-ui": "2.0.1",
23
- "fastify": "4.25.1"
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": "2.31.2",
32
+ "version": "3.0.0",
33
33
  "scripts": {
34
34
  "clean": "rm -rf dist/",
35
35
  "build": "tsc",
@@ -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"}
@@ -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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"}