@buildvision/nest-sdk-generator 2.3.1 → 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.
Files changed (93) hide show
  1. package/.eslintrc.js +1 -1
  2. package/.github/workflows/test.yml +35 -0
  3. package/README.md +402 -239
  4. package/build/analyzer/classdeps.js +36 -4
  5. package/build/analyzer/controller.d.ts +2 -14
  6. package/build/analyzer/controller.js +38 -18
  7. package/build/analyzer/controllers.d.ts +2 -2
  8. package/build/analyzer/controllers.js +37 -5
  9. package/build/analyzer/extractor.d.ts +2 -41
  10. package/build/analyzer/extractor.js +63 -66
  11. package/build/analyzer/index.d.ts +2 -6
  12. package/build/analyzer/index.js +107 -86
  13. package/build/analyzer/methods.d.ts +2 -30
  14. package/build/analyzer/methods.js +7 -16
  15. package/build/analyzer/module.js +36 -4
  16. package/build/analyzer/params.d.ts +3 -39
  17. package/build/analyzer/params.js +17 -37
  18. package/build/analyzer/route.js +8 -9
  19. package/build/analyzer/sdk.d.ts +146 -0
  20. package/build/analyzer/sdk.js +120 -0
  21. package/build/analyzer/typedeps.d.ts +15 -0
  22. package/build/analyzer/typedeps.js +62 -10
  23. package/build/bin.js +72 -26
  24. package/build/config.d.ts +13 -0
  25. package/build/config.js +36 -3
  26. package/build/engine/analyze.d.ts +16 -0
  27. package/build/engine/analyze.js +786 -0
  28. package/build/engine/ast.d.ts +24 -0
  29. package/build/engine/ast.js +100 -0
  30. package/build/engine/file-order.d.ts +17 -0
  31. package/build/engine/file-order.js +97 -0
  32. package/build/engine/host.d.ts +63 -0
  33. package/build/engine/host.js +16 -0
  34. package/build/engine/index.d.ts +15 -0
  35. package/build/engine/index.js +93 -0
  36. package/build/engine/ts-morph-compat-host.d.ts +8 -0
  37. package/build/engine/ts-morph-compat-host.js +18 -0
  38. package/build/engine/tsgo-host.d.ts +9 -0
  39. package/build/engine/tsgo-host.js +136 -0
  40. package/build/engine/typescript-host.d.ts +26 -0
  41. package/build/engine/typescript-host.js +142 -0
  42. package/build/generator/genmodules.d.ts +1 -4
  43. package/build/generator/genmodules.js +23 -27
  44. package/build/generator/gentypes.d.ts +1 -1
  45. package/build/generator/gentypes.js +36 -4
  46. package/build/generator/index.d.ts +1 -1
  47. package/build/generator/index.js +91 -69
  48. package/build/generator/prettier.js +43 -9
  49. package/build/generator/sdk-interface.d.ts +1 -1
  50. package/build/generator/sdk-interface.js +5 -5
  51. package/build/logging.d.ts +2 -0
  52. package/build/logging.js +14 -11
  53. package/build/rtk-query-generator/genmodules.d.ts +1 -4
  54. package/build/rtk-query-generator/genmodules.js +27 -31
  55. package/build/rtk-query-generator/index.d.ts +1 -1
  56. package/build/rtk-query-generator/index.js +87 -65
  57. package/build/rtk-query-generator/prettier.js +43 -9
  58. package/build/rtk-query-generator/sdk-interface.js +3 -4
  59. package/build/utils.js +38 -6
  60. package/package.json +29 -11
  61. package/src/analyzer/controller.ts +3 -31
  62. package/src/analyzer/controllers.ts +3 -2
  63. package/src/analyzer/extractor.ts +17 -86
  64. package/src/analyzer/index.ts +5 -11
  65. package/src/analyzer/methods.ts +5 -36
  66. package/src/analyzer/params.ts +13 -55
  67. package/src/analyzer/sdk.ts +247 -0
  68. package/src/analyzer/typedeps.ts +22 -4
  69. package/src/bin.ts +29 -5
  70. package/src/config.ts +15 -0
  71. package/src/engine/analyze.ts +1110 -0
  72. package/src/engine/ast.ts +105 -0
  73. package/src/engine/file-order.ts +104 -0
  74. package/src/engine/host.ts +79 -0
  75. package/src/engine/index.ts +79 -0
  76. package/src/engine/ts-morph-compat-host.ts +20 -0
  77. package/src/engine/tsgo-host.ts +119 -0
  78. package/src/engine/typescript-host.ts +159 -0
  79. package/src/generator/genmodules.ts +9 -4
  80. package/src/generator/gentypes.ts +1 -1
  81. package/src/generator/index.ts +1 -1
  82. package/src/logging.ts +6 -1
  83. package/src/rtk-query-generator/genmodules.ts +9 -4
  84. package/src/rtk-query-generator/index.ts +1 -2
  85. package/src/rtk-query-generator/sdk-interface.ts +2 -3
  86. package/tsconfig.json +7 -6
  87. package/build/analyzer/decorator.d.ts +0 -10
  88. package/build/analyzer/decorator.js +0 -29
  89. package/build/rtk-query-generator/gentypes.d.ts +0 -10
  90. package/build/rtk-query-generator/gentypes.js +0 -62
  91. package/build/tsconfig.tsbuildinfo +0 -1
  92. package/bun.lockb +0 -0
  93. package/tsconfig.tsbuildinfo +0 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @file Entrypoint of the SDK generator
3
3
  */
4
- import { SdkContent } from '../analyzer';
4
+ import { SdkContent } from '../analyzer/sdk';
5
5
  import { Config } from '../config';
6
6
  export default function generateRTKQueryEndpoints(config: Config, sdkContent: SdkContent): Promise<void>;
7
7
  export declare const validateSdkContent: (content: SdkContent) => void;
@@ -2,80 +2,102 @@
2
2
  /**
3
3
  * @file Entrypoint of the SDK generator
4
4
  */
5
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
6
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
7
- return new (P || (P = Promise))(function (resolve, reject) {
8
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
9
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
10
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
11
- step((generator = generator.apply(thisArg, _arguments || [])).next());
12
- });
13
- };
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
14
38
  Object.defineProperty(exports, "__esModule", { value: true });
15
39
  exports.validateSdkContent = void 0;
16
- const fs = require("fs");
17
- const path = require("path");
40
+ exports.default = generateRTKQueryEndpoints;
41
+ const fs = __importStar(require("fs"));
42
+ const path = __importStar(require("path"));
18
43
  const logging_1 = require("../logging");
19
44
  const genmodules_1 = require("./genmodules");
20
45
  const prettier_1 = require("./prettier");
21
46
  const sdk_interface_1 = require("./sdk-interface");
22
- function generateRTKQueryEndpoints(config, sdkContent) {
23
- return __awaiter(this, void 0, void 0, function* () {
24
- (0, exports.validateSdkContent)(sdkContent);
25
- const prettifyOutput = config.prettify !== false;
26
- if (!prettifyOutput) {
27
- (0, logging_1.debug)('NOTE: files will not be prettified with Prettier');
28
- }
29
- const outputPath = path.resolve(process.cwd(), config.sdkOutputPath);
30
- const inputPath = path.resolve(process.cwd(), config.apiInputPath);
31
- const inputRelativePath = path.relative(outputPath, inputPath);
32
- if (fs.existsSync(outputPath)) {
33
- if (config.overwriteOldOutputDir === false) {
34
- (0, logging_1.panic)("Please provide an output directory that doesn't exist yet");
35
- }
36
- else {
37
- fs.rmSync(outputPath, { recursive: true });
38
- }
47
+ async function generateRTKQueryEndpoints(config, sdkContent) {
48
+ (0, exports.validateSdkContent)(sdkContent);
49
+ const prettifyOutput = config.prettify !== false;
50
+ if (!prettifyOutput) {
51
+ (0, logging_1.debug)('NOTE: files will not be prettified with Prettier');
52
+ }
53
+ const outputPath = path.resolve(process.cwd(), config.sdkOutputPath);
54
+ const inputPath = path.resolve(process.cwd(), config.apiInputPath);
55
+ const inputRelativePath = path.relative(outputPath, inputPath);
56
+ if (fs.existsSync(outputPath)) {
57
+ if (config.overwriteOldOutputDir === false) {
58
+ (0, logging_1.panic)("Please provide an output directory that doesn't exist yet");
39
59
  }
40
- const outputParentDir = path.dirname(outputPath);
41
- if (!fs.existsSync(outputParentDir)) {
42
- (0, logging_1.panic)("Output directory's parent {magentaBright} does not exist.", outputParentDir);
60
+ else {
61
+ fs.rmSync(outputPath, { recursive: true });
43
62
  }
44
- fs.mkdirSync(outputPath);
45
- const prettierConfig = prettifyOutput ? (0, prettier_1.findPrettierConfig)(config) : {};
46
- const writeScriptTo = (parentDir, file, utf8Content) => __awaiter(this, void 0, void 0, function* () {
47
- if (file.endsWith('.ts')) {
48
- utf8Content =
49
- '/// Auto-generated file (nest-sdk-generator)\n' +
50
- '/// Please do not edit this file - re-generate the SDK using the generator instead.\n' +
51
- (config.generateTimestamps !== false ? '/// Generated on: ' + new Date().toUTCString() + '\n' : '') +
52
- '///\n' +
53
- utf8Content;
54
- }
55
- const fullPath = path.resolve(outputPath, parentDir !== null && parentDir !== void 0 ? parentDir : '', file);
56
- fs.mkdirSync(path.dirname(fullPath), { recursive: true });
57
- const fileContent = prettifyOutput
58
- ? yield (0, prettier_1.prettify)(utf8Content, prettierConfig, file.endsWith('.json') ? 'json' : 'typescript')
59
- : utf8Content;
60
- fs.writeFileSync(fullPath, fileContent, 'utf8');
61
- });
62
- const modules = sdkContent.modules;
63
- for (const [file, content] of (0, genmodules_1.generateSdkModules)({ modules, inputRelativePath })) {
64
- yield writeScriptTo(null, file, content);
65
- }
66
- const sdkInterfacePath = path.resolve(process.cwd(), config.sdkInterfacePath);
67
- const relativeSdkInterfacePath = path
68
- .relative(outputPath, sdkInterfacePath)
69
- .replace(/\\/g, '/')
70
- .replace(/\.([jt]sx?)$/, '');
71
- yield writeScriptTo(null, 'baseRequest.ts', `export type { BaseRequestArgs, BaseRequestFn } from "${relativeSdkInterfacePath}"`);
72
- if (!fs.existsSync(sdkInterfacePath) && config.generateDefaultSdkInterface !== false) {
73
- (0, logging_1.println)('├─ Generating default BaseRequest implementation...');
74
- fs.writeFileSync(sdkInterfacePath, sdk_interface_1.defaultSdkInterface, 'utf8');
63
+ }
64
+ const outputParentDir = path.dirname(outputPath);
65
+ if (!fs.existsSync(outputParentDir)) {
66
+ (0, logging_1.panic)("Output directory's parent {magentaBright} does not exist.", outputParentDir);
67
+ }
68
+ fs.mkdirSync(outputPath);
69
+ const prettierConfig = prettifyOutput ? (0, prettier_1.findPrettierConfig)(config) : {};
70
+ const writeScriptTo = async (parentDir, file, utf8Content) => {
71
+ if (file.endsWith('.ts')) {
72
+ utf8Content =
73
+ '/// Auto-generated file (nest-sdk-generator)\n' +
74
+ '/// Please do not edit this file - re-generate the SDK using the generator instead.\n' +
75
+ (config.generateTimestamps !== false ? '/// Generated on: ' + new Date().toUTCString() + '\n' : '') +
76
+ '///\n' +
77
+ utf8Content;
75
78
  }
76
- });
79
+ const fullPath = path.resolve(outputPath, parentDir ?? '', file);
80
+ fs.mkdirSync(path.dirname(fullPath), { recursive: true });
81
+ const fileContent = prettifyOutput
82
+ ? await (0, prettier_1.prettify)(utf8Content, prettierConfig, file.endsWith('.json') ? 'json' : 'typescript')
83
+ : utf8Content;
84
+ fs.writeFileSync(fullPath, fileContent, 'utf8');
85
+ };
86
+ const modules = sdkContent.modules;
87
+ for (const [file, content] of (0, genmodules_1.generateSdkModules)({ modules, inputRelativePath })) {
88
+ await writeScriptTo(null, file, content);
89
+ }
90
+ const sdkInterfacePath = path.resolve(process.cwd(), config.sdkInterfacePath);
91
+ const relativeSdkInterfacePath = path
92
+ .relative(outputPath, sdkInterfacePath)
93
+ .replace(/\\/g, '/')
94
+ .replace(/\.([jt]sx?)$/, '');
95
+ await writeScriptTo(null, 'baseRequest.ts', `export type { BaseRequestArgs, BaseRequestFn } from "${relativeSdkInterfacePath}"`);
96
+ if (!fs.existsSync(sdkInterfacePath) && config.generateDefaultSdkInterface !== false) {
97
+ (0, logging_1.println)('├─ Generating default BaseRequest implementation...');
98
+ fs.writeFileSync(sdkInterfacePath, sdk_interface_1.defaultSdkInterface, 'utf8');
99
+ }
77
100
  }
78
- exports.default = generateRTKQueryEndpoints;
79
101
  const validateSdkContent = (content) => {
80
102
  const seenMethods = new Map();
81
103
  const seenRoutes = new Map();
@@ -97,4 +119,4 @@ const validateSdkContent = (content) => {
97
119
  });
98
120
  };
99
121
  exports.validateSdkContent = validateSdkContent;
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnRrLXF1ZXJ5LWdlbmVyYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7OztBQUVILHlCQUF3QjtBQUN4Qiw2QkFBNEI7QUFLNUIsd0NBQWtEO0FBRWxELDZDQUFpRDtBQUNqRCx5Q0FBeUQ7QUFDekQsbURBQXFEO0FBRXJELFNBQThCLHlCQUF5QixDQUFDLE1BQWMsRUFBRSxVQUFzQjs7UUFDNUYsSUFBQSwwQkFBa0IsRUFBQyxVQUFVLENBQUMsQ0FBQTtRQUU5QixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQUMsUUFBUSxLQUFLLEtBQUssQ0FBQTtRQUVoRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsSUFBQSxlQUFLLEVBQUMsa0RBQWtELENBQUMsQ0FBQTtRQUMzRCxDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBQ3BFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQTtRQUNsRSxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFBO1FBRTlELElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksTUFBTSxDQUFDLHFCQUFxQixLQUFLLEtBQUssRUFBRSxDQUFDO2dCQUMzQyxJQUFBLGVBQUssRUFBQywyREFBMkQsQ0FBQyxDQUFBO1lBQ3BFLENBQUM7aUJBQU0sQ0FBQztnQkFDTixFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVB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
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnRrLXF1ZXJ5LWdlbmVyYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxNQUFZLEVBQUUsK0JBQVU7QUFDeEIsTUFBWSxJQUFJLGlDQUFZO0FBSTVCLHdDQUFrRDtBQUVsRCw2Q0FBaUQ7QUFDakQseUNBQXlEO0FBQ3pELG1EQUFxRDtBQUV0QyxLQUFLLG9DQUFvQyxNQUFjLEVBQUUsVUFBc0I7SUFDNUYsSUFBQSxRQUFBLGtCQUFrQixFQUFDLFVBQVUsQ0FBQyxDQUFBO0lBRTlCLE1BQU0sY0FBYyxHQUFHLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFBO0lBRWhELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixJQUFBLGVBQUssRUFBQyxrREFBa0QsQ0FBQyxDQUFBO0lBQzNELENBQUM7SUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLENBQUMsYUFBYSxDQUFDLENBQUE7SUFDcEUsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ2xFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFFOUQsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDOUIsSUFBSSxNQUFNLENBQUMscUJBQXFCLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDM0MsSUFBQSxlQUFLLEVBQUMsMkRBQTJELENBQUMsQ0FBQTtRQUNwRSxDQUFDO2FBQU0sQ0FBQztZQUNOLEVBQUUsQ0FBQyxNQUFN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
@@ -2,18 +2,51 @@
2
2
  /**
3
3
  * @file Interface for prettifying generated files
4
4
  */
5
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
6
+ if (k2 === undefined) k2 = k;
7
+ var desc = Object.getOwnPropertyDescriptor(m, k);
8
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
9
+ desc = { enumerable: true, get: function() { return m[k]; } };
10
+ }
11
+ Object.defineProperty(o, k2, desc);
12
+ }) : (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ o[k2] = m[k];
15
+ }));
16
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
17
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
18
+ }) : function(o, v) {
19
+ o["default"] = v;
20
+ });
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.prettify = exports.findPrettierConfig = void 0;
7
- const fs = require("fs");
8
- const prettier = require("prettier");
39
+ exports.findPrettierConfig = findPrettierConfig;
40
+ exports.prettify = prettify;
41
+ const fs = __importStar(require("fs"));
42
+ const prettier = __importStar(require("prettier"));
9
43
  const logging_1 = require("../logging");
10
44
  const utils_1 = require("../utils");
11
45
  /**
12
46
  * Find a .prettierrc configuration file in the current directory or above
13
47
  */
14
48
  function findPrettierConfig(config) {
15
- var _a;
16
- const prettierConfigPath = (_a = config.prettierConfig) !== null && _a !== void 0 ? _a : (0, utils_1.findFileAbove)('.prettierrc', config.sdkOutputPath);
49
+ const prettierConfigPath = config.prettierConfig ?? (0, utils_1.findFileAbove)('.prettierrc', config.sdkOutputPath);
17
50
  if (!prettierConfigPath) {
18
51
  return {};
19
52
  }
@@ -28,7 +61,6 @@ function findPrettierConfig(config) {
28
61
  throw new Error('Failed to parse Prettier configuration: ' + e);
29
62
  }
30
63
  }
31
- exports.findPrettierConfig = findPrettierConfig;
32
64
  /**
33
65
  * Prettify a TypeScript or JSON input
34
66
  * @param source
@@ -37,7 +69,9 @@ exports.findPrettierConfig = findPrettierConfig;
37
69
  * @returns
38
70
  */
39
71
  function prettify(source, config, parser) {
40
- return prettier.format(source, Object.assign({ parser }, config));
72
+ return prettier.format(source, {
73
+ parser,
74
+ ...config,
75
+ });
41
76
  }
42
- exports.prettify = prettify;
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnRrLXF1ZXJ5LWdlbmVyYXRvci9wcmV0dGllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7OztBQUVILHlCQUF3QjtBQUV4QixxQ0FBb0M7QUFHcEMsd0NBQWtDO0FBQ2xDLG9DQUF3QztBQUV4Qzs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUFDLE1BQWM7O0lBQy9DLE1BQU0sa0JBQWtCLEdBQUcsTUFBQSxNQUFNLENBQUMsY0FBYyxtQ0FBSSxJQUFBLHFCQUFhLEVBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUV0RyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUN4QixPQUFPLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFRCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7UUFDdkMsSUFBQSxlQUFLLEVBQUMsa0VBQWtFLEVBQUUsa0JBQWtCLENBQUMsQ0FBQTtJQUMvRixDQUFDO0lBRUQsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUV4RCxJQUFJLENBQUM7UUFDSCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7SUFDekIsQ0FBQztJQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBQ2pFLENBQUM7QUFDSCxDQUFDO0FBbEJELGdEQWtCQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQWdCLFFBQVEsQ0FBQyxNQUFjLEVBQUUsTUFBYyxFQUFFLE1BQTZCO0lBQ3BGLE9BQU8sUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLGtCQUMzQixNQUFNLElBQ0gsTUFBTSxFQUNULENBQUE7QUFDSixDQUFDO0FBTEQsNEJBS0MifQ==
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJldHRpZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcnRrLXF1ZXJ5LWdlbmVyYXRvci9wcmV0dGllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7O0dBRUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCxNQUFZLEVBQUUsK0JBQVU7QUFFeEIsTUFBWSxRQUFRLHFDQUFnQjtBQUdwQyx3Q0FBa0M7QUFDbEMsb0NBQXdDO0FBRXhDOztHQUVHO0FBQ0gsNEJBQW1DLE1BQWM7SUFDL0MsTUFBTSxrQkFBa0IsR0FBRyxNQUFNLENBQUMsY0FBYyxJQUFJLElBQUEscUJBQWEsRUFBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRXRHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hCLE9BQU8sRUFBRSxDQUFBO0lBQ1gsQ0FBQztJQUVELElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztRQUN2QyxJQUFBLGVBQUssRUFBQyxrRUFBa0UsRUFBRSxrQkFBa0IsQ0FBQyxDQUFBO0lBQy9GLENBQUM7SUFFRCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBRXhELElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUN6QixDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsMENBQTBDLEdBQUcsQ0FBQyxDQUFDLENBQUE7SUFDakUsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxrQkFBeUIsTUFBYyxFQUFFLE1BQWMsRUFBRSxNQUE2QjtJQUNwRixPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQzdCLE1BQU07UUFDTixHQUFHLE1BQU07S0FDVixDQUFDLENBQUE7QUFDSixDQUFDIn0=
@@ -2,8 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultSdkInterface = void 0;
4
4
  exports.defaultSdkInterface = `
5
- import type { BaseQueryApi } from "@reduxjs/toolkit/dist/query/baseQueryTypes";
6
- import type { BaseQueryFn } from "@reduxjs/toolkit/query";
5
+ import type { BaseQueryApi, BaseQueryFn } from "@reduxjs/toolkit/query";
7
6
 
8
7
  export type BaseRequestArgs = {
9
8
  body: unknown;
@@ -161,7 +160,7 @@ export type RequestErrorParams = {
161
160
  };
162
161
 
163
162
  export class RequestError extends Error {
164
- public static readonly DEFAULT_USER_MESSAGE: "An unexpected error occurred. We're looking into it!";
163
+ public static readonly DEFAULT_USER_MESSAGE = "An unexpected error occurred. We're looking into it!";
165
164
 
166
165
  public readonly type: RequestErrorType;
167
166
  public readonly userMessage: string;
@@ -254,4 +253,4 @@ export class RequestError extends Error {
254
253
  }
255
254
 
256
255
  `.trim();
257
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydGstcXVlcnktZ2VuZXJhdG9yL3Nkay1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBNFBsQyxDQUFDLElBQUksRUFBRSxDQUFBIn0=
256
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RrLWludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydGstcXVlcnktZ2VuZXJhdG9yL3Nkay1pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQWEsUUFBQSxtQkFBbUIsR0FBRzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0EyUGxDLENBQUMsSUFBSSxFQUFFLENBQUEifQ==
package/build/utils.js CHANGED
@@ -1,8 +1,42 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.findFilesRecursive = exports.findFileAbove = void 0;
4
- const fs = require("fs");
5
- const path = require("path");
36
+ exports.findFileAbove = findFileAbove;
37
+ exports.findFilesRecursive = findFilesRecursive;
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
6
40
  function findFileAbove(pattern, dir) {
7
41
  if (!path.isAbsolute(dir)) {
8
42
  // Get an absolute path to allow getting its parent using path.dirname()
@@ -27,7 +61,6 @@ function findFileAbove(pattern, dir) {
27
61
  // Success!
28
62
  return path.resolve(dir, items[0]);
29
63
  }
30
- exports.findFileAbove = findFileAbove;
31
64
  /**
32
65
  * Find all files matching a pattern, recursively
33
66
  * @param pattern The pattern to look for
@@ -52,5 +85,4 @@ function findFilesRecursive(pattern, dir, relative = true) {
52
85
  }
53
86
  return find(pattern, dir, dir);
54
87
  }
55
- exports.findFilesRecursive = findFilesRecursive;
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXdCO0FBQ3hCLDZCQUE0QjtBQUU1QixTQUFnQixhQUFhLENBQUMsT0FBd0IsRUFBRSxHQUFXO0lBQ2pFLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDMUIsd0VBQXdFO1FBQ3hFLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRUQseUJBQXlCO0lBQ3pCLHVGQUF1RjtJQUN2Riw4QkFBOEI7SUFDOUIsNEdBQTRHO0lBQzVHLElBQUksT0FBTyxHQUFHLEdBQUcsQ0FBQTtJQUVqQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUE7SUFFZCx3Q0FBd0M7SUFDeEMsT0FBTyxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLFlBQVksTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4SSxtQ0FBbUM7UUFDbkMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFdkIseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxHQUFHLElBQUksT0FBTyxLQUFLLEdBQUcsRUFBRSxDQUFDO1lBQzVCLE9BQU8sSUFBSSxDQUFBO1FBQ2IsQ0FBQztRQUVELE9BQU8sR0FBRyxHQUFHLENBQUE7SUFDZixDQUFDO0lBRUQsV0FBVztJQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEMsQ0FBQztBQTdCRCxzQ0E2QkM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxPQUF3QixFQUFFLEdBQVcsRUFBRSxRQUFRLEdBQUcsSUFBSTtJQUN2RixNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUE7SUFFekIsU0FBUyxJQUFJLENBQUMsT0FBd0IsRUFBRSxPQUFlLEVBQUUsT0FBZTtRQUN0RSxPQUFPLEVBQUU7YUFDTixXQUFXLENBQUMsT0FBTyxDQUFDO2FBQ3BCLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1osTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUE7WUFFNUMsT0FBTyxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRTtnQkFDekMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQztnQkFDbEMsQ0FBQyxDQUFDLENBQUMsT0FBTyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNyRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ2xGLENBQUMsQ0FBQyxFQUFFLENBQUE7UUFDVixDQUFDLENBQUM7YUFDRCxJQUFJLEVBQUUsQ0FBQTtJQUNYLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQ2hDLENBQUM7QUFuQkQsZ0RBbUJDIn0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLE1BQVksRUFBRSwrQkFBVTtBQUN4QixNQUFZLElBQUksaUNBQVk7QUFFNUIsdUJBQThCLE9BQXdCLEVBQUUsR0FBVztJQUNqRSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQzFCLHdFQUF3RTtRQUN4RSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVELHlCQUF5QjtJQUN6Qix1RkFBdUY7SUFDdkYsOEJBQThCO0lBQzlCLDRHQUE0RztJQUM1RyxJQUFJLE9BQU8sR0FBRyxHQUFHLENBQUE7SUFFakIsSUFBSSxLQUFLLEdBQUcsRUFBRSxDQUFBO0lBRWQsd0NBQXdDO0lBQ3hDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxZQUFZLE1BQU0sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEksbUNBQW1DO1FBQ25DLEdBQUcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBRXZCLHlGQUF5RjtRQUN6RixJQUFJLENBQUMsR0FBRyxJQUFJLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQztZQUM1QixPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFFRCxPQUFPLEdBQUcsR0FBRyxDQUFBO0lBQ2YsQ0FBQztJQUVELFdBQVc7SUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFBO0FBQ3BDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCw0QkFBbUMsT0FBd0IsRUFBRSxHQUFXLEVBQUUsUUFBUSxHQUFHLElBQUk7SUFDdkYsTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFBO0lBRXpCLFNBQVMsSUFBSSxDQUFDLE9BQXdCLEVBQUUsT0FBZSxFQUFFLE9BQWU7UUFDdEUsT0FBTyxFQUFFO2FBQ04sV0FBVyxDQUFDLE9BQU8sQ0FBQzthQUNwQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNaLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFBO1lBRTVDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxXQUFXLEVBQUU7Z0JBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDckUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNsRixDQUFDLENBQUMsRUFBRSxDQUFBO1FBQ1YsQ0FBQyxDQUFDO2FBQ0QsSUFBSSxFQUFFLENBQUE7SUFDWCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQTtBQUNoQyxDQUFDIn0=
package/package.json CHANGED
@@ -1,36 +1,51 @@
1
1
  {
2
2
  "name": "@buildvision/nest-sdk-generator",
3
3
  "author": "BuildVision <christophe@buildvision.io>",
4
- "version": "2.3.1",
5
- "description": "A full-powered SDK generator for NestJS",
4
+ "version": "3.0.0",
5
+ "description": "Generate fully-typed RTK Query API clients from NestJS controllers",
6
6
  "keywords": [
7
7
  "nest",
8
8
  "nestjs",
9
+ "rtk-query",
10
+ "redux-toolkit",
11
+ "redux",
12
+ "react",
13
+ "api-client",
9
14
  "sdk",
10
15
  "generator",
11
- "typescript",
12
- "frontend",
13
- "api"
16
+ "typescript"
14
17
  ],
18
+ "repository": {
19
+ "type": "git",
20
+ "url": "git+https://github.com/build-vision/nest-sdk-generator.git"
21
+ },
22
+ "homepage": "https://github.com/build-vision/nest-sdk-generator#readme",
23
+ "bugs": {
24
+ "url": "https://github.com/build-vision/nest-sdk-generator/issues"
25
+ },
15
26
  "main": "build/bin.js",
16
27
  "scripts": {
17
28
  "prepare": "npm run build",
18
- "build": "tsc -p tsconfig.json --outDir build",
29
+ "build": "rm -rf build && node node_modules/typescript/bin/tsc -p tsconfig.json --outDir build",
30
+ "build:baseline": "./scripts/build-baseline.sh",
19
31
  "start": "npm run build && node build/bin.js",
20
- "typecheck": "bun tsc --project tsconfig.json --noEmit",
21
- "lint": "bun eslint --quiet . --fix"
32
+ "test": "npm run build && node --test 'test/*.test.mjs'",
33
+ "typecheck": "node node_modules/typescript/bin/tsc --project tsconfig.json --noEmit",
34
+ "lint": "node --require ./scripts/eslint-with-typescript-6.cjs node_modules/eslint/bin/eslint.js --quiet . --fix"
22
35
  },
23
36
  "bin": "build/bin.js",
24
37
  "dependencies": {
25
38
  "chalk": "~4.1.2",
26
39
  "minimist": "~1.2.7",
27
40
  "prettier": "^3.2.5",
28
- "ts-morph": "~16.0.0"
41
+ "ts-morph": "~16.0.0",
42
+ "typescript": "7.0.2"
29
43
  },
30
44
  "devDependencies": {
45
+ "@reduxjs/toolkit": "^2.13.0",
31
46
  "@types/minimist": "^1.2.2",
32
47
  "@types/node": "~18.11.9",
33
- "typescript": "^5.2.2",
48
+ "@types/react": "^19.3.0",
34
49
  "@typescript-eslint/eslint-plugin": "^6.13.2",
35
50
  "@typescript-eslint/parser": "^6.13.2",
36
51
  "eslint": "^8.50.0",
@@ -40,6 +55,9 @@
40
55
  "eslint-plugin-import": "^2.27.5",
41
56
  "eslint-plugin-prettier": "^5.0.0",
42
57
  "eslint-plugin-sort-destructure-keys": "^1.5.0",
43
- "eslint-plugin-typescript-sort-keys": "^3.1.0"
58
+ "eslint-plugin-typescript-sort-keys": "^3.1.0",
59
+ "react": "^19.3.0",
60
+ "react-redux": "^9.3.0",
61
+ "typescript-6": "npm:typescript@6.0.3"
44
62
  }
45
63
  }
@@ -8,38 +8,10 @@ import { Node, Project } from 'ts-morph'
8
8
 
9
9
  import { debug, warn } from '../logging'
10
10
 
11
- import { analyzeMethods, SdkMethod } from './methods'
11
+ import { analyzeMethods } from './methods'
12
+ import { camelcase, SdkController } from './sdk'
12
13
 
13
- /**
14
- * Convert a string to camel case
15
- * @param str
16
- */
17
- function camelcase(str: string): string {
18
- return str
19
- .split(/[^a-zA-Z0-9_]/g)
20
- .map((p, i) => {
21
- const f = p.substr(0, 1)
22
- return (i === 0 ? f.toLocaleLowerCase() : f.toLocaleUpperCase()) + p.substr(1)
23
- })
24
- .join('')
25
- }
26
-
27
- /**
28
- * SDK interface of a controller
29
- */
30
- export interface SdkController {
31
- /** Name of the controller's class, camel cased */
32
- readonly className: string
33
-
34
- /** Controller's methods */
35
- readonly methods: SdkMethod[]
36
-
37
- /** Original controller file's path */
38
- readonly path: string
39
-
40
- /** Name the controller is registered under */
41
- readonly registrationName: string
42
- }
14
+ export { SdkController }
43
15
 
44
16
  /**
45
17
  * Generate a SDK interface for a controller
@@ -10,10 +10,11 @@ import { Project } from 'ts-morph'
10
10
  import { debug, format, panic, warn } from '../logging'
11
11
  import { findFileAbove } from '../utils'
12
12
 
13
- import { analyzeController, SdkController } from './controller'
13
+ import { analyzeController } from './controller'
14
14
  import { getModuleName } from './module'
15
+ import { SdkController, SdkModules } from './sdk'
15
16
 
16
- export type SdkModules = Map<string, Map<string, SdkController>>
17
+ export { SdkModules }
17
18
 
18
19
  export function analyzeControllers(controllers: string[], absoluteSrcPath: string, project: Project): SdkModules {
19
20
  /** Hierarchised SDK informations */
@@ -10,45 +10,27 @@ import { MagicType } from '../config'
10
10
  import { debug, format, panic, unreachable, warn } from '../logging'
11
11
 
12
12
  import { analyzeClassDeps } from './classdeps'
13
- import { SdkModules } from './controllers'
14
- import { getParamResolvedTypes } from './params'
13
+ import {
14
+ ExtractedType,
15
+ flattenSdkResolvedTypes,
16
+ locateTypesFile,
17
+ MODULE_EXTENSIONS,
18
+ TypeLocation,
19
+ TypeLocationWithExt,
20
+ TypesExtractorContent,
21
+ } from './sdk'
15
22
  import { getImportResolvedType, ResolvedTypeDeps, resolveTypeDependencies } from './typedeps'
16
23
 
17
- /** Valid extensions for TypeScript module files */
18
- export const MODULE_EXTENSIONS = ['.ts', '.d.ts', '.tsx', '.d.tsx', '.js', '.jsx']
19
-
20
- /**
21
- * Location of an imported type
22
- */
23
- export interface TypeLocation {
24
- readonly relativePathNoExt: string
25
- readonly typename: string
24
+ export {
25
+ ExtractedType,
26
+ flattenSdkResolvedTypes,
27
+ locateTypesFile,
28
+ MODULE_EXTENSIONS,
29
+ TypeLocation,
30
+ TypeLocationWithExt,
31
+ TypesExtractorContent,
26
32
  }
27
33
 
28
- /**
29
- * Location of an imported type after figuring out its extension
30
- */
31
- export interface TypeLocationWithExt extends TypeLocation {
32
- readonly relativePath: string
33
- }
34
-
35
- /**
36
- * Extracted imported type
37
- */
38
- export interface ExtractedType extends TypeLocationWithExt {
39
- /** Type's declaration */
40
- readonly content: string
41
-
42
- /** Types this one depends on */
43
- readonly dependencies: TypeLocationWithExt[]
44
-
45
- /** Type parameters (e.g. <T>) */
46
- readonly typeParams: string[]
47
- }
48
-
49
- // Maps files to records mapping themselves type names to their declaration code
50
- export type TypesExtractorContent = Map<string, Map<string, ExtractedType>>
51
-
52
34
  /**
53
35
  * Types extractor
54
36
  */
@@ -427,54 +409,3 @@ export class TypesExtractor {
427
409
  return extracted
428
410
  }
429
411
  }
430
-
431
- /**
432
- * Locate the files containing a list of a resolved types
433
- * @param resolvedTypes
434
- * @returns
435
- */
436
- export function locateTypesFile(resolvedTypes: Array<ResolvedTypeDeps>): TypeLocation[] {
437
- const out = new Array<TypeLocation>()
438
-
439
- for (const resolved of resolvedTypes) {
440
- for (const [file, types] of resolved.dependencies) {
441
- for (const typename of types) {
442
- if (!out.find((loc) => loc.typename === typename && loc.relativePathNoExt === file)) {
443
- out.push({ typename, relativePathNoExt: file })
444
- }
445
- }
446
- }
447
-
448
- for (const typename of resolved.localTypes) {
449
- if (!out.find((loc) => loc.typename === typename && loc.relativePathNoExt === resolved.relativeFilePath)) {
450
- out.push({ typename, relativePathNoExt: resolved.relativeFilePath })
451
- }
452
- }
453
- }
454
-
455
- return out
456
- }
457
-
458
- /**
459
- * Flatten a tree of resolved type dependencies
460
- * @param sdkModules
461
- * @returns
462
- */
463
- export function flattenSdkResolvedTypes(sdkModules: SdkModules): ResolvedTypeDeps[] {
464
- const flattened = new Array<ResolvedTypeDeps>()
465
-
466
- for (const module of sdkModules.values()) {
467
- for (const controller of module.values()) {
468
- for (const method of controller.methods.values()) {
469
- const { bodyParams, queryParams, routeParams } = method.params
470
-
471
- flattened.push(method.returnType)
472
- flattened.push(...getParamResolvedTypes(routeParams))
473
- flattened.push(...getParamResolvedTypes(queryParams))
474
- flattened.push(...getParamResolvedTypes(bodyParams))
475
- }
476
- }
477
- }
478
-
479
- return flattened
480
- }