fastify-flux-cli 2.19.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.
Files changed (118) hide show
  1. package/LICENSE +19 -0
  2. package/cli.js +13 -0
  3. package/dist/commands/build.d.ts +3 -0
  4. package/dist/commands/build.d.ts.map +1 -0
  5. package/dist/commands/build.js +18 -0
  6. package/dist/commands/build.js.map +1 -0
  7. package/dist/commands/new.d.ts +1 -0
  8. package/dist/commands/new.d.ts.map +1 -0
  9. package/dist/commands/new.js +2 -0
  10. package/dist/commands/new.js.map +1 -0
  11. package/dist/commands/sdk.d.ts +3 -0
  12. package/dist/commands/sdk.d.ts.map +1 -0
  13. package/dist/commands/sdk.js +16 -0
  14. package/dist/commands/sdk.js.map +1 -0
  15. package/dist/commands/start.d.ts +3 -0
  16. package/dist/commands/start.d.ts.map +1 -0
  17. package/dist/commands/start.js +128 -0
  18. package/dist/commands/start.js.map +1 -0
  19. package/dist/helper/api-sdk.js +16 -0
  20. package/dist/helper/api-sdk.js.map +1 -0
  21. package/dist/helper/config.d.ts +3 -0
  22. package/dist/helper/config.d.ts.map +1 -0
  23. package/dist/helper/config.js +31 -0
  24. package/dist/helper/config.js.map +1 -0
  25. package/dist/helper/esbuild.d.ts +2 -0
  26. package/dist/helper/esbuild.d.ts.map +1 -0
  27. package/dist/helper/esbuild.js +43 -0
  28. package/dist/helper/esbuild.js.map +1 -0
  29. package/dist/helper/generateMeta.d.ts +2 -0
  30. package/dist/helper/generateMeta.d.ts.map +1 -0
  31. package/dist/helper/generateMeta.js +27 -0
  32. package/dist/helper/generateMeta.js.map +1 -0
  33. package/dist/helper/generateSchema.d.ts +13 -0
  34. package/dist/helper/generateSchema.d.ts.map +1 -0
  35. package/dist/helper/generateSchema.js +63 -0
  36. package/dist/helper/generateSchema.js.map +1 -0
  37. package/dist/helper/generateSdk.d.ts +3 -0
  38. package/dist/helper/generateSdk.d.ts.map +1 -0
  39. package/dist/helper/generateSdk.js +35 -0
  40. package/dist/helper/generateSdk.js.map +1 -0
  41. package/dist/helper/getControllerFunctions.d.ts +7 -0
  42. package/dist/helper/getControllerFunctions.d.ts.map +1 -0
  43. package/dist/helper/getControllerFunctions.js +62 -0
  44. package/dist/helper/getControllerFunctions.js.map +1 -0
  45. package/dist/helper/index.d.ts +5 -0
  46. package/dist/helper/index.d.ts.map +1 -0
  47. package/dist/helper/index.js +24 -0
  48. package/dist/helper/index.js.map +1 -0
  49. package/dist/helper/killProcess.d.ts +2 -0
  50. package/dist/helper/killProcess.d.ts.map +1 -0
  51. package/dist/helper/killProcess.js +11 -0
  52. package/dist/helper/killProcess.js.map +1 -0
  53. package/dist/helper/prettify.d.ts +1 -0
  54. package/dist/helper/prettify.d.ts.map +1 -0
  55. package/dist/helper/prettify.js +2 -0
  56. package/dist/helper/prettify.js.map +1 -0
  57. package/dist/helper/writeFile.d.ts +2 -0
  58. package/dist/helper/writeFile.d.ts.map +1 -0
  59. package/dist/helper/writeFile.js +12 -0
  60. package/dist/helper/writeFile.js.map +1 -0
  61. package/dist/index.d.ts +2 -0
  62. package/dist/index.d.ts.map +1 -0
  63. package/dist/index.js +11 -0
  64. package/dist/index.js.map +1 -0
  65. package/dist/log.d.ts +9 -0
  66. package/dist/log.d.ts.map +1 -0
  67. package/dist/log.js +24 -0
  68. package/dist/log.js.map +1 -0
  69. package/dist/piscina/index.d.ts +9 -0
  70. package/dist/piscina/index.d.ts.map +1 -0
  71. package/dist/piscina/index.js +24 -0
  72. package/dist/piscina/index.js.map +1 -0
  73. package/dist/piscina/worker.d.ts +8 -0
  74. package/dist/piscina/worker.d.ts.map +1 -0
  75. package/dist/piscina/worker.js +35 -0
  76. package/dist/piscina/worker.js.map +1 -0
  77. package/dist/schema/__tests__/emptObject.test.d.ts +2 -0
  78. package/dist/schema/__tests__/emptObject.test.d.ts.map +1 -0
  79. package/dist/schema/__tests__/emptObject.test.js +27 -0
  80. package/dist/schema/__tests__/emptObject.test.js.map +1 -0
  81. package/dist/schema/__tests__/nullableSchema.test.d.ts +2 -0
  82. package/dist/schema/__tests__/nullableSchema.test.d.ts.map +1 -0
  83. package/dist/schema/__tests__/nullableSchema.test.js +141 -0
  84. package/dist/schema/__tests__/nullableSchema.test.js.map +1 -0
  85. package/dist/schema/convertNullToNullable.d.ts +3 -0
  86. package/dist/schema/convertNullToNullable.d.ts.map +1 -0
  87. package/dist/schema/convertNullToNullable.js +23 -0
  88. package/dist/schema/convertNullToNullable.js.map +1 -0
  89. package/dist/schema/generateSchema.d.ts +13 -0
  90. package/dist/schema/generateSchema.d.ts.map +1 -0
  91. package/dist/schema/generateSchema.js +66 -0
  92. package/dist/schema/generateSchema.js.map +1 -0
  93. package/dist/schema/helper/add-properties.d.ts +2 -0
  94. package/dist/schema/helper/add-properties.d.ts.map +1 -0
  95. package/dist/schema/helper/add-properties.js +11 -0
  96. package/dist/schema/helper/add-properties.js.map +1 -0
  97. package/dist/schema/helper/convertEmptyObject.d.ts +2 -0
  98. package/dist/schema/helper/convertEmptyObject.d.ts.map +1 -0
  99. package/dist/schema/helper/convertEmptyObject.js +9 -0
  100. package/dist/schema/helper/convertEmptyObject.js.map +1 -0
  101. package/dist/schema/helper/convertNullToNullable.d.ts +2 -0
  102. package/dist/schema/helper/convertNullToNullable.d.ts.map +1 -0
  103. package/dist/schema/helper/convertNullToNullable.js +33 -0
  104. package/dist/schema/helper/convertNullToNullable.js.map +1 -0
  105. package/dist/schema/nullableSchema.test.d.ts +2 -0
  106. package/dist/schema/nullableSchema.test.d.ts.map +1 -0
  107. package/dist/schema/nullableSchema.test.js +93 -0
  108. package/dist/schema/nullableSchema.test.js.map +1 -0
  109. package/dist/types.d.ts +13 -0
  110. package/dist/types.d.ts.map +1 -0
  111. package/dist/types.js +2 -0
  112. package/dist/types.js.map +1 -0
  113. package/package.json +57 -0
  114. package/sdk-templates/api.eta +65 -0
  115. package/sdk-templates/axios-http-client.eta +133 -0
  116. package/sdk-templates/http-client.eta +3 -0
  117. package/sdk-templates/procedure-call.eta +99 -0
  118. package/sdk-templates/route-types.eta +28 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getControllerFunctions.js","sourceRoot":"","sources":["../../src/helper/getControllerFunctions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,MAAM,UAAU,kBAAkB,CAAC,IAAwB;IACzD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,CAAC;KACX;IAED,OAAO,IAAI;SACR,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;SAChB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;SACnB,KAAK,CAAC,GAAG,CAAC;SACV,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,EAAE;QACX,GAAG,CAAC;YACF,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,0BAA0B;YACjC,OAAO,EAAE,GAAG,IAAI,EAAE;SACnB,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,EAAE,CAAC;KACnB;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,oBAAoB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;IACzE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QACnB,GAAG,CAAC;YACF,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,sDAAsD;YAC7D,OAAO,EAAE,GAAG,IAAI,EAAE;SACnB,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,EAAE,CAAC;KACnB;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,GAAG,CAAC;YACF,SAAS,EAAE,KAAK;YAChB,KAAK,EAAE,oDAAoD;YAC3D,OAAO,EAAE,GAAG,IAAI,EAAE;SACnB,CAAC,CAAC;QACH,MAAM,IAAI,KAAK,EAAE,CAAC;KACnB;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;IAEvC,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAErD,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAM,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACjD,MAAM,MAAM,GAAG,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACzC,OAAO;gBACL,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE;gBAC/B,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,CAAC;aACrD,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;QAExE,GAAG,CAAC,IAAI,CAAC,GAAG;YACV,MAAM;YACN,UAAU;SACX,CAAC;QAEF,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare function writeControllerJson(): Promise<void>;
2
+ export declare function writeSchemaJson(): Promise<void>;
3
+ export declare function getRootDir(): string;
4
+ export * from './esbuild.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AAOA,wBAAsB,mBAAmB,kBAKxC;AAED,wBAAsB,eAAe,kBAQpC;AAED,wBAAgB,UAAU,WAEzB;AAED,cAAc,cAAc,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { dirname, join } from 'node:path';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { getConfig } from './config.js';
4
+ import { generateMeta } from './generateMeta.js';
5
+ import { generateSchema } from '../schema/generateSchema.js';
6
+ import { writeFile } from './writeFile.js';
7
+ export async function writeControllerJson() {
8
+ const config = await getConfig();
9
+ const meta = await generateMeta();
10
+ writeFile(join(config.outdir, 'flux-controller.json'), meta);
11
+ }
12
+ export async function writeSchemaJson() {
13
+ const config = await getConfig();
14
+ let schema = await generateSchema(config.entry, { removeDateTime: false });
15
+ if (!schema) {
16
+ schema = '{}';
17
+ }
18
+ writeFile(join(config.outdir, 'flux-schema.json'), schema);
19
+ }
20
+ export function getRootDir() {
21
+ return join(dirname(fileURLToPath(import.meta.url)), '../../');
22
+ }
23
+ export * from './esbuild.js';
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/helper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAElC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,sBAAsB,CAAC,EAAE,IAAI,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;IACjC,IAAI,MAAM,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,GAAG,IAAI,CAAC;KACf;IAED,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;AACjE,CAAC;AAED,cAAc,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function killProcess(pid: number): Promise<void>;
2
+ //# sourceMappingURL=killProcess.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"killProcess.d.ts","sourceRoot":"","sources":["../../src/helper/killProcess.ts"],"names":[],"mappings":"AAEA,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,iBAO5C"}
@@ -0,0 +1,11 @@
1
+ import pidtree from 'pidtree';
2
+ export async function killProcess(pid) {
3
+ try {
4
+ const pids = await pidtree(pid, { root: true });
5
+ pids.map((el) => {
6
+ process.kill(el);
7
+ });
8
+ }
9
+ catch { }
10
+ }
11
+ //# sourceMappingURL=killProcess.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"killProcess.js","sourceRoot":"","sources":["../../src/helper/killProcess.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,IAAI;QACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;YACd,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;KACJ;IAAC,MAAM,GAAE;AACZ,CAAC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=prettify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettify.d.ts","sourceRoot":"","sources":["../../src/helper/prettify.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=prettify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prettify.js","sourceRoot":"","sources":["../../src/helper/prettify.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export declare function writeFile(file: string, content: string): void;
2
+ //# sourceMappingURL=writeFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeFile.d.ts","sourceRoot":"","sources":["../../src/helper/writeFile.ts"],"names":[],"mappings":"AAEA,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,QAStD"}
@@ -0,0 +1,12 @@
1
+ import { readFileSync, writeFileSync } from 'fs';
2
+ export function writeFile(file, content) {
3
+ let oldContent = '';
4
+ try {
5
+ oldContent = readFileSync(file, 'utf8');
6
+ }
7
+ catch (err) { }
8
+ if (oldContent !== content) {
9
+ writeFileSync(file, content);
10
+ }
11
+ }
12
+ //# sourceMappingURL=writeFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"writeFile.js","sourceRoot":"","sources":["../../src/helper/writeFile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAEjD,MAAM,UAAU,SAAS,CAAC,IAAY,EAAE,OAAe;IACrD,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI;QACF,UAAU,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;KACzC;IAAC,OAAO,GAAG,EAAE,GAAE;IAEhB,IAAI,UAAU,KAAK,OAAO,EAAE;QAC1B,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;KAC9B;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './types.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,11 @@
1
+ import { Command } from 'commander';
2
+ import { addStartCommand } from './commands/start.js';
3
+ import { addBuildCommand } from './commands/build.js';
4
+ import { addSdkCommand } from './commands/sdk.js';
5
+ export * from './types.js';
6
+ const program = new Command();
7
+ addStartCommand(program);
8
+ addBuildCommand(program);
9
+ addSdkCommand(program);
10
+ program.parse(process.argv);
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,cAAc,YAAY,CAAC;AAE3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,aAAa,CAAC,OAAO,CAAC,CAAC;AAEvB,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
package/dist/log.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ export declare function log(options: {
2
+ component: string;
3
+ success?: string;
4
+ warning?: string;
5
+ error?: string;
6
+ details?: string;
7
+ logFunction?: (message: string) => void;
8
+ }): void;
9
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAEA,wBAAgB,GAAG,CAAC,OAAO,EAAE;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC,QAwBA"}
package/dist/log.js ADDED
@@ -0,0 +1,24 @@
1
+ import chalk from 'chalk';
2
+ export function log(options) {
3
+ let logFunction = console.log;
4
+ if (options && options.logFunction) {
5
+ logFunction = options.logFunction;
6
+ }
7
+ let output = `${chalk.dim(new Date().toLocaleTimeString())} `;
8
+ output += chalk.cyan.bold(`[${options.component}]`.padEnd(7, ' ')) + ' ';
9
+ const { success, error, warning } = options;
10
+ if (success) {
11
+ output += `${chalk.green(success)} `;
12
+ }
13
+ else if (error) {
14
+ output += `${chalk.red(error)} `;
15
+ }
16
+ else if (warning) {
17
+ output += `${chalk.magenta(warning)} `;
18
+ }
19
+ if (options.details) {
20
+ output += chalk.dim(options.details);
21
+ }
22
+ logFunction(output);
23
+ }
24
+ //# sourceMappingURL=log.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,GAAG,CAAC,OAOnB;IACC,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAE9B,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE;QAClC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;KACnC;IAED,IAAI,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,CAAC,GAAG,CAAC;IAC9D,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,SAAS,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;IAEzE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC5C,IAAI,OAAO,EAAE;QACX,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;KACtC;SAAM,IAAI,KAAK,EAAE;QAChB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC;KAClC;SAAM,IAAI,OAAO,EAAE;QAClB,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;KACxC;IAED,IAAI,OAAO,CAAC,OAAO,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACtC;IAED,WAAW,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import Piscina from 'piscina';
2
+ import { GenerateApiParams } from 'swagger-typescript-api';
3
+ export declare const piscina: Piscina;
4
+ export declare function runWorkerEsbuild(): Promise<boolean>;
5
+ export declare function runWorkerSchemaGeneration(): Promise<any>;
6
+ export declare function runWorkerControllerGeneration(): Promise<any>;
7
+ export declare function runWorkerSdkGeneration(sdk: GenerateApiParams): Promise<any>;
8
+ export declare function runWorkerTypecheck(): Promise<any>;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/piscina/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAI3D,eAAO,MAAM,OAAO,SAGlB,CAAC;AAEH,wBAAgB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEnD;AAED,wBAAgB,yBAAyB,iBAExC;AAED,wBAAgB,6BAA6B,iBAE5C;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,iBAAiB,gBAE5D;AAED,wBAAgB,kBAAkB,iBAEjC"}
@@ -0,0 +1,24 @@
1
+ import Piscina from 'piscina';
2
+ import { dirname, resolve } from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ const __dirname = dirname(fileURLToPath(import.meta.url));
5
+ export const piscina = new Piscina({
6
+ filename: resolve(__dirname, 'worker.js'),
7
+ maxThreads: 4,
8
+ });
9
+ export function runWorkerEsbuild() {
10
+ return piscina.run({}, { name: 'runEsbuild' });
11
+ }
12
+ export function runWorkerSchemaGeneration() {
13
+ return piscina.run({}, { name: 'runSchemaGeneration' });
14
+ }
15
+ export function runWorkerControllerGeneration() {
16
+ return piscina.run({}, { name: 'runControllerGeneration' });
17
+ }
18
+ export function runWorkerSdkGeneration(sdk) {
19
+ return piscina.run(sdk, { name: 'runSdkGeneration' });
20
+ }
21
+ export function runWorkerTypecheck() {
22
+ return piscina.run({}, { name: 'runTypecheck' });
23
+ }
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/piscina/index.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAGzC,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE1D,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC;IACjC,QAAQ,EAAE,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC;IACzC,UAAU,EAAE,CAAC;CACd,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAsB;IAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AACnD,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { GenerateApiParams } from 'swagger-typescript-api';
2
+ export default function handler(): void;
3
+ export declare function runControllerGeneration(): Promise<void>;
4
+ export declare function runSchemaGeneration(): Promise<void>;
5
+ export declare function runEsbuild(): Promise<boolean>;
6
+ export declare function runTypecheck(): Promise<void>;
7
+ export declare function runSdkGeneration(sdk: GenerateApiParams): Promise<void>;
8
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/piscina/worker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAU3D,MAAM,CAAC,OAAO,UAAU,OAAO,SAE9B;AAED,wBAAsB,uBAAuB,kBAQ5C;AAED,wBAAsB,mBAAmB,kBAExC;AAED,wBAAsB,UAAU,qBAE/B;AAED,wBAAsB,YAAY,kBAMjC;AAED,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,iBAE5D"}
@@ -0,0 +1,35 @@
1
+ import { execa } from 'execa';
2
+ import { generateSdk } from '../helper/generateSdk.js';
3
+ import { esbuildHelper, writeControllerJson, writeSchemaJson, } from '../helper/index.js';
4
+ import { log } from '../log.js';
5
+ export default function handler() {
6
+ console.log('runing handler');
7
+ }
8
+ export async function runControllerGeneration() {
9
+ try {
10
+ await writeControllerJson();
11
+ }
12
+ catch (err) {
13
+ if (err.message !== '') {
14
+ throw err;
15
+ }
16
+ }
17
+ }
18
+ export async function runSchemaGeneration() {
19
+ await writeSchemaJson();
20
+ }
21
+ export async function runEsbuild() {
22
+ return await esbuildHelper();
23
+ }
24
+ export async function runTypecheck() {
25
+ try {
26
+ await execa('tsc', ['--noEmit']);
27
+ }
28
+ catch (err) {
29
+ log({ component: 'cli', error: 'Typecheck failed', details: err.message });
30
+ }
31
+ }
32
+ export async function runSdkGeneration(sdk) {
33
+ await generateSdk(sdk);
34
+ }
35
+ //# sourceMappingURL=worker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/piscina/worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAE9B,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAEhC,MAAM,CAAC,OAAO,UAAU,OAAO;IAC7B,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB;IAC3C,IAAI;QACF,MAAM,mBAAmB,EAAE,CAAC;KAC7B;IAAC,OAAO,GAAQ,EAAE;QACjB,IAAI,GAAG,CAAC,OAAO,KAAK,EAAE,EAAE;YACtB,MAAM,GAAG,CAAC;SACX;KACF;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,eAAe,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,OAAO,MAAM,aAAa,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI;QACF,MAAM,KAAK,CAAC,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;KAClC;IAAC,OAAO,GAAQ,EAAE;QACjB,GAAG,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;KAC5E;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,GAAsB;IAC3D,MAAM,WAAW,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=emptObject.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emptObject.test.d.ts","sourceRoot":"","sources":["../../../src/schema/__tests__/emptObject.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { convertEmptyObject } from '../helper/convertEmptyObject';
2
+ const input = {
3
+ UpdateTodo: {
4
+ type: 'object',
5
+ properties: {
6
+ anyObject: {
7
+ type: 'object',
8
+ },
9
+ },
10
+ },
11
+ };
12
+ test('convert anyOf to nullable', () => {
13
+ expect(convertEmptyObject(input)).toMatchInlineSnapshot(`
14
+ Object {
15
+ "UpdateTodo": Object {
16
+ "properties": Object {
17
+ "anyObject": Object {
18
+ "additionalProperties": true,
19
+ "type": "object",
20
+ },
21
+ },
22
+ "type": "object",
23
+ },
24
+ }
25
+ `);
26
+ });
27
+ //# sourceMappingURL=emptObject.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"emptObject.test.js","sourceRoot":"","sources":["../../../src/schema/__tests__/emptObject.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,KAAK,GAAG;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;aACf;SACF;KACF;CACF,CAAC;AAEF,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACrC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;CAYzD,CAAC,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=nullableSchema.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullableSchema.test.d.ts","sourceRoot":"","sources":["../../../src/schema/__tests__/nullableSchema.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,141 @@
1
+ import { convertNullToNullable } from '../helper/convertNullToNullable';
2
+ const input = {
3
+ UpdateTodo: {
4
+ type: 'object',
5
+ properties: {
6
+ text: {
7
+ type: 'string',
8
+ },
9
+ foo: {
10
+ anyOf: [
11
+ {
12
+ type: 'null',
13
+ },
14
+ {
15
+ type: 'string',
16
+ },
17
+ {
18
+ type: 'number',
19
+ },
20
+ ],
21
+ },
22
+ user: {
23
+ anyOf: [
24
+ {
25
+ type: 'null',
26
+ },
27
+ {
28
+ type: 'object',
29
+ properties: {
30
+ id: {
31
+ type: 'number',
32
+ },
33
+ anyOf: [
34
+ {
35
+ type: 'null',
36
+ },
37
+ {
38
+ type: 'object',
39
+ properties: {
40
+ id: {
41
+ type: 'number',
42
+ },
43
+ },
44
+ },
45
+ ],
46
+ },
47
+ },
48
+ ],
49
+ },
50
+ },
51
+ },
52
+ };
53
+ test('convert anyOf to nullable', () => {
54
+ expect(convertNullToNullable(input)).toMatchInlineSnapshot(`
55
+ Object {
56
+ "UpdateTodo": Object {
57
+ "properties": Object {
58
+ "foo": Object {
59
+ "anyOf": Array [
60
+ Object {
61
+ "type": "null",
62
+ },
63
+ Object {
64
+ "type": "string",
65
+ },
66
+ Object {
67
+ "type": "number",
68
+ },
69
+ ],
70
+ },
71
+ "text": Object {
72
+ "type": "string",
73
+ },
74
+ "user": Object {
75
+ "nullable": true,
76
+ "properties": Object {
77
+ "nullable": true,
78
+ "properties": Object {
79
+ "id": Object {
80
+ "type": "number",
81
+ },
82
+ },
83
+ "type": "object",
84
+ },
85
+ "type": "object",
86
+ },
87
+ },
88
+ "type": "object",
89
+ },
90
+ }
91
+ `);
92
+ });
93
+ const input2 = {
94
+ AnyResponse: {
95
+ type: 'object',
96
+ properties: {
97
+ multiNull: {
98
+ type: ['null', 'number', 'string'],
99
+ },
100
+ multiNull2: {
101
+ type: ['number', 'string'],
102
+ },
103
+ multiNull3: {
104
+ type: ['null', 'string'],
105
+ },
106
+ },
107
+ additionalProperties: false,
108
+ $id: 'AnyResponse',
109
+ },
110
+ };
111
+ test('convert anyOf to nullable', () => {
112
+ expect(convertNullToNullable(input2)).toMatchInlineSnapshot(`
113
+ Object {
114
+ "AnyResponse": Object {
115
+ "$id": "AnyResponse",
116
+ "additionalProperties": false,
117
+ "properties": Object {
118
+ "multiNull": Object {
119
+ "nullable": true,
120
+ "type": Array [
121
+ "number",
122
+ "string",
123
+ ],
124
+ },
125
+ "multiNull2": Object {
126
+ "type": Array [
127
+ "number",
128
+ "string",
129
+ ],
130
+ },
131
+ "multiNull3": Object {
132
+ "nullable": true,
133
+ "type": "string",
134
+ },
135
+ },
136
+ "type": "object",
137
+ },
138
+ }
139
+ `);
140
+ });
141
+ //# sourceMappingURL=nullableSchema.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nullableSchema.test.js","sourceRoot":"","sources":["../../../src/schema/__tests__/nullableSchema.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAExE,MAAM,KAAK,GAAG;IACZ,UAAU,EAAE;QACV,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;aACf;YACD,GAAG,EAAE;gBACH,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,QAAQ;qBACf;oBACD;wBACE,IAAI,EAAE,QAAQ;qBACf;iBACF;aACF;YACD,IAAI,EAAE;gBACJ,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,MAAM;qBACb;oBACD;wBACE,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,EAAE,EAAE;gCACF,IAAI,EAAE,QAAQ;6BACf;4BACD,KAAK,EAAE;gCACL;oCACE,IAAI,EAAE,MAAM;iCACb;gCACD;oCACE,IAAI,EAAE,QAAQ;oCACd,UAAU,EAAE;wCACV,EAAE,EAAE;4CACF,IAAI,EAAE,QAAQ;yCACf;qCACF;iCACF;6BACF;yBACF;qBACF;iBACF;aACF;SACF;KACF;CACF,CAAC;AAEF,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACrC,MAAM,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqC1D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG;IACb,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;aACnC;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;aAC3B;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;aACzB;SACF;QACD,oBAAoB,EAAE,KAAK;QAC3B,GAAG,EAAE,aAAa;KACnB;CACF,CAAC;AAEF,IAAI,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACrC,MAAM,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2B3D,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function convertNullToNullable(object: any): any;
2
+ export declare function convertEmptyObject(object: any): any;
3
+ //# sourceMappingURL=convertNullToNullable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertNullToNullable.d.ts","sourceRoot":"","sources":["../../src/schema/convertNullToNullable.ts"],"names":[],"mappings":"AAaA,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAStD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,GAAG,CAEnD"}
@@ -0,0 +1,23 @@
1
+ import _ from 'lodash';
2
+ function handleAnyOf(anyOf) {
3
+ const hasTypeNull = anyOf.find((x) => x.type === 'null');
4
+ if (!hasTypeNull || anyOf.length !== 2) {
5
+ return;
6
+ }
7
+ const noneNull = anyOf.find((x) => x.type !== 'null');
8
+ return { nullable: true, ...noneNull };
9
+ }
10
+ export function convertNullToNullable(object) {
11
+ return _.cloneDeepWith(object, (value) => {
12
+ if (value['anyOf']) {
13
+ const result = handleAnyOf(value['anyOf']);
14
+ if (result) {
15
+ return convertNullToNullable(result);
16
+ }
17
+ }
18
+ });
19
+ }
20
+ export function convertEmptyObject(object) {
21
+ return _.cloneDeepWith(object, (value) => { });
22
+ }
23
+ //# sourceMappingURL=convertNullToNullable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertNullToNullable.js","sourceRoot":"","sources":["../../src/schema/convertNullToNullable.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,QAAQ,CAAC;AAEvB,SAAS,WAAW,CAAC,KAA2B;IAC9C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAC9D,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QACtC,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAE3D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,QAAQ,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAW;IAC/C,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;QACvC,IAAI,KAAK,CAAC,OAAO,CAAC,EAAE;YAClB,MAAM,MAAM,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,IAAI,MAAM,EAAE;gBACV,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;aACtC;SACF;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,MAAW;IAC5C,OAAO,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,GAAE,CAAC,CAAC,CAAC;AAChD,CAAC"}
@@ -0,0 +1,13 @@
1
+ interface GenerateSchemaOptions {
2
+ removeDateTime: boolean;
3
+ }
4
+ export declare class GenerateGlobalSchema {
5
+ private base;
6
+ private params;
7
+ constructor(base: string, params: GenerateSchemaOptions);
8
+ getSchema(): Promise<string>;
9
+ handle(): Promise<string>;
10
+ }
11
+ export declare function generateSchema(path: string, options: GenerateSchemaOptions): Promise<string>;
12
+ export {};
13
+ //# sourceMappingURL=generateSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSchema.d.ts","sourceRoot":"","sources":["../../src/schema/generateSchema.ts"],"names":[],"mappings":"AAQA,UAAU,qBAAqB;IAC7B,cAAc,EAAE,OAAO,CAAC;CACzB;AAUD,qBAAa,oBAAoB;IACnB,OAAO,CAAC,IAAI;IAAU,OAAO,CAAC,MAAM;gBAA5B,IAAI,EAAE,MAAM,EAAU,MAAM,EAAE,qBAAqB;IAEjE,SAAS;IAwCT,MAAM;CAcb;AAED,wBAAsB,cAAc,CAClC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,mBAK/B"}
@@ -0,0 +1,66 @@
1
+ import $RefParser from '@apidevtools/json-schema-ref-parser';
2
+ import * as ts from 'ts-json-schema-generator';
3
+ import { log } from '../log.js';
4
+ import { addProperties } from './helper/add-properties.js';
5
+ import { convertEmptyObject } from './helper/convertEmptyObject.js';
6
+ import { convertNullToNullable } from './helper/convertNullToNullable.js';
7
+ function addId(schema) {
8
+ return Object.fromEntries(Object.entries(schema).map(([key, value]) => {
9
+ return [key, { ...value, $id: `${key}` }];
10
+ }));
11
+ }
12
+ export class GenerateGlobalSchema {
13
+ constructor(base, params) {
14
+ this.base = base;
15
+ this.params = params;
16
+ }
17
+ async getSchema() {
18
+ const config = {
19
+ path: `${this.base}/**/*schema.ts`,
20
+ tsconfig: './tsconfig.json',
21
+ };
22
+ try {
23
+ let schema = ts.createGenerator(config).createSchema();
24
+ schema = await $RefParser.dereference(schema);
25
+ schema = addId(schema.definitions);
26
+ schema = convertNullToNullable(schema);
27
+ schema = convertEmptyObject(schema);
28
+ schema = addProperties(schema);
29
+ return JSON.stringify(schema, null, 2);
30
+ }
31
+ catch (e) {
32
+ if (e.message.includes('NoRootNamesError')) {
33
+ console.warn(`\nMissing interfaces for path: ${this.base}/controllers/*/interfaces.ts\n`);
34
+ return '';
35
+ }
36
+ if (e.diagnostics) {
37
+ e.diagnostics.forEach((element) => {
38
+ log({
39
+ component: 'cli',
40
+ warning: element.messageText,
41
+ details: element.file.fileName,
42
+ });
43
+ });
44
+ return '';
45
+ }
46
+ throw e;
47
+ }
48
+ }
49
+ async handle() {
50
+ let schema = await this.getSchema();
51
+ /*
52
+ schema = schema.replace(/, format: 'date-time'/g, '');
53
+
54
+ if (schema.includes('date-time')) {
55
+ console.warn(
56
+ `\ndate-time is used in schema. This causes issues with fastify serialization. Use string instead.\n`,
57
+ );
58
+ }*/
59
+ return schema;
60
+ }
61
+ }
62
+ export async function generateSchema(path, options) {
63
+ const instance = new GenerateGlobalSchema(path, options);
64
+ return instance.handle();
65
+ }
66
+ //# sourceMappingURL=generateSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generateSchema.js","sourceRoot":"","sources":["../../src/schema/generateSchema.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,qCAAqC,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAE/C,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAM1E,SAAS,KAAK,CAAC,MAA8B;IAC3C,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QAC1C,OAAO,CAAC,GAAG,EAAE,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC,CAAC,CACH,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,oBAAoB;IAC/B,YAAoB,IAAY,EAAU,MAA6B;QAAnD,SAAI,GAAJ,IAAI,CAAQ;QAAU,WAAM,GAAN,MAAM,CAAuB;IAAG,CAAC;IAE3E,KAAK,CAAC,SAAS;QACb,MAAM,MAAM,GAAW;YACrB,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,gBAAgB;YAClC,QAAQ,EAAE,iBAAiB;SAC5B,CAAC;QAEF,IAAI;YACF,IAAI,MAAM,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,YAAY,EAAS,CAAC;YAC9D,MAAM,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAE9C,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACnC,MAAM,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;YACpC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAE/B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;SACxC;QAAC,OAAO,CAAM,EAAE;YACf,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;gBAC1C,OAAO,CAAC,IAAI,CACV,kCAAkC,IAAI,CAAC,IAAI,gCAAgC,CAC5E,CAAC;gBACF,OAAO,EAAE,CAAC;aACX;YAED,IAAI,CAAC,CAAC,WAAW,EAAE;gBACjB,CAAC,CAAC,WAAW,CAAC,OAAO,CACnB,CAAC,OAA4D,EAAE,EAAE;oBAC/D,GAAG,CAAC;wBACF,SAAS,EAAE,KAAK;wBAChB,OAAO,EAAE,OAAO,CAAC,WAAW;wBAC5B,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ;qBAC/B,CAAC,CAAC;gBACL,CAAC,CACF,CAAC;gBACF,OAAO,EAAE,CAAC;aACX;YAED,MAAM,CAAC,CAAC;SACT;IACH,CAAC;IACD,KAAK,CAAC,MAAM;QACV,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QAEpC;;;;;;;WAOG;QAEH,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,IAAY,EACZ,OAA8B;IAE9B,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEzD,OAAO,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC3B,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function addProperties(definitions: Record<string, any>): Record<string, any>;
2
+ //# sourceMappingURL=add-properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-properties.d.ts","sourceRoot":"","sources":["../../../src/schema/helper/add-properties.ts"],"names":[],"mappings":"AACA,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,uBAS7D"}
@@ -0,0 +1,11 @@
1
+ // schemas without properties cause fastify-swagger to fail
2
+ export function addProperties(definitions) {
3
+ Object.keys(definitions).forEach((key) => {
4
+ const definition = definitions[key];
5
+ if (definition.type === 'object' && !definition.properties) {
6
+ definition.properties = {};
7
+ }
8
+ });
9
+ return definitions;
10
+ }
11
+ //# sourceMappingURL=add-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"add-properties.js","sourceRoot":"","sources":["../../../src/schema/helper/add-properties.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,UAAU,aAAa,CAAC,WAAgC;IAC5D,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;QAC/C,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,UAAU,CAAC,IAAI,KAAK,QAAQ,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC1D,UAAU,CAAC,UAAU,GAAG,EAAE,CAAC;SAC5B;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function convertEmptyObject(object: any): any;
2
+ //# sourceMappingURL=convertEmptyObject.d.ts.map