swagger-to-playwright-api-clients 1.0.26 → 1.0.28

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 (59) hide show
  1. package/README.md +49 -57
  2. package/dist/api.d.ts +2 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +11 -1
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli.js +7 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/config/types.d.ts +19 -0
  9. package/dist/config/types.d.ts.map +1 -1
  10. package/dist/config/types.js +3 -0
  11. package/dist/config/types.js.map +1 -1
  12. package/dist/index.d.ts +2 -1
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +3 -3
  15. package/dist/index.js.map +1 -1
  16. package/dist/utils/copyHelpers.d.ts +24 -0
  17. package/dist/utils/copyHelpers.d.ts.map +1 -0
  18. package/dist/utils/copyHelpers.js +94 -0
  19. package/dist/utils/copyHelpers.js.map +1 -0
  20. package/dist/utils/logger.d.ts +0 -14
  21. package/dist/utils/logger.d.ts.map +1 -1
  22. package/dist/utils/logger.js +6 -48
  23. package/dist/utils/logger.js.map +1 -1
  24. package/dist/utils/swagger/FixtureGenerator.d.ts +5 -2
  25. package/dist/utils/swagger/FixtureGenerator.d.ts.map +1 -1
  26. package/dist/utils/swagger/FixtureGenerator.js +37 -14
  27. package/dist/utils/swagger/FixtureGenerator.js.map +1 -1
  28. package/dist/utils/swagger/run-generator.d.ts.map +1 -1
  29. package/dist/utils/swagger/run-generator.js +18 -7
  30. package/dist/utils/swagger/run-generator.js.map +1 -1
  31. package/dist/utils/templates/ApiAssertions.template.d.ts +6 -0
  32. package/dist/utils/templates/ApiAssertions.template.d.ts.map +1 -0
  33. package/dist/utils/templates/ApiAssertions.template.js +128 -0
  34. package/dist/utils/templates/ApiAssertions.template.js.map +1 -0
  35. package/dist/utils/templates/ApiStatusCodes.template.d.ts +6 -0
  36. package/dist/utils/templates/ApiStatusCodes.template.d.ts.map +1 -0
  37. package/dist/utils/templates/ApiStatusCodes.template.js +45 -0
  38. package/dist/utils/templates/ApiStatusCodes.template.js.map +1 -0
  39. package/dist/utils/templates/SecurityPayloads.template.d.ts +6 -0
  40. package/dist/utils/templates/SecurityPayloads.template.d.ts.map +1 -0
  41. package/dist/utils/templates/SecurityPayloads.template.js +156 -0
  42. package/dist/utils/templates/SecurityPayloads.template.js.map +1 -0
  43. package/dist/utils/templates/SetupHelpers.template.d.ts +6 -0
  44. package/dist/utils/templates/SetupHelpers.template.d.ts.map +1 -0
  45. package/dist/utils/templates/SetupHelpers.template.js +69 -0
  46. package/dist/utils/templates/SetupHelpers.template.js.map +1 -0
  47. package/dist/utils/templates/TestDataGenerator.template.d.ts +6 -0
  48. package/dist/utils/templates/TestDataGenerator.template.d.ts.map +1 -0
  49. package/dist/utils/templates/TestDataGenerator.template.js +407 -0
  50. package/dist/utils/templates/TestDataGenerator.template.js.map +1 -0
  51. package/dist/utils/templates/TypeValidator.template.d.ts +6 -0
  52. package/dist/utils/templates/TypeValidator.template.d.ts.map +1 -0
  53. package/dist/utils/templates/TypeValidator.template.js +194 -0
  54. package/dist/utils/templates/TypeValidator.template.js.map +1 -0
  55. package/dist/utils/templates/index.d.ts +10 -0
  56. package/dist/utils/templates/index.d.ts.map +1 -0
  57. package/dist/utils/templates/index.js +19 -0
  58. package/dist/utils/templates/index.js.map +1 -0
  59. package/package.json +1 -1
package/README.md CHANGED
@@ -87,70 +87,51 @@ npx swagger-to-playwright --help
87
87
  npx swagger-to-playwright init
88
88
  ```
89
89
 
90
- ## Programmatic Usage
90
+ ## Wrting Tests with Generated Clients
91
91
 
92
- ```typescript
93
- import { generate, generateFromConfig } from 'swagger-to-playwright-api-clients';
94
-
95
- // Generate from a single source
96
- const result = await generate({
97
- source: './swagger.json',
98
- type: 'file',
99
- outputDir: './src/clients',
100
- serviceName: 'MyService',
101
- });
92
+ The generator produces typed fixture clients, assertion helpers, test data utilities,
93
+ and status-code constants so tests stay concise and consistent.
102
94
 
103
- // Generate from config object
104
- const results = await generateFromConfig({
105
- outputDir: './src/clients',
106
- sources: [{ type: 'file', source: './swagger.json', serviceName: 'MyService' }],
107
- });
108
- ```
95
+ ```typescript
96
+ // Import test & expect from the generated fixtures — NOT from @playwright/test
97
+ import { test, expect } from '../src/fixtures/fixtures';
98
+ import { ApiAssertions } from '../src/utils/ApiAssertions';
99
+ import { STATUS } from '../src/helpers/ApiStatusCodes';
100
+ import { random } from '../src/utils/TestDataGenerator';
109
101
 
110
- ## Using Generated Clients
102
+ test('get all pets', async ({ petClient }) => {
103
+ const { body, status } = await petClient.findPetsByStatus('available');
111
104
 
112
- ```typescript
113
- import { test, expect } from '@playwright/test';
114
- import { BaseAPIClient } from './clients/BaseAPIClient';
115
- import { MyServiceActivityClient } from './clients/generatedClients/MyService/Activity/MyServiceActivityClient';
116
-
117
- test('API test example', async () => {
118
- const baseClient = new BaseAPIClient('https://api.example.com', {
119
- 'Content-Type': 'application/json',
120
- Authorization: 'Bearer your-token',
121
- });
122
- await baseClient.init();
105
+ ApiAssertions.expectStatus(status, STATUS.OK);
106
+ expect(body?.length).toBeGreaterThan(0);
107
+ });
123
108
 
124
- const activityClient = new MyServiceActivityClient(baseClient);
109
+ test('create and delete a pet', async ({ petClient, cleanup }) => {
110
+ const payload = { name: random.fullName(), status: 'available' };
125
111
 
126
- const { body, status } = await activityClient.getActivities();
112
+ const { body, status } = await petClient.addPet(payload);
127
113
 
128
- expect(status).toBe(200);
129
- expect(body.activities).toBeDefined();
114
+ // Register cleanup BEFORE asserting so teardown runs even on failure
115
+ cleanup.register(async () => {
116
+ await petClient.deletePet(body?.id);
117
+ });
130
118
 
131
- await baseClient.dispose();
119
+ ApiAssertions.expectStatus(status, STATUS.OK);
120
+ expect(body?.name).toBe(payload.name);
132
121
  });
133
122
  ```
134
123
 
135
124
  ### With Request/Response Logging
136
125
 
137
126
  ```typescript
138
- import { getLogger, configureLogger } from 'swagger-to-playwright-api-clients';
139
- import { BaseAPIClient } from './clients/BaseAPIClient';
127
+ import { configureLogger, getLogger } from 'swagger-to-playwright-api-clients';
140
128
 
141
- // Configure logger (optional - uses defaults if not called)
129
+ // Configure logger (optional reads generator-config.ts by default)
142
130
  configureLogger({
143
131
  level: 'debug',
144
132
  console: true,
145
133
  file: false,
146
134
  });
147
-
148
- // Pass logger to BaseAPIClient for request/response logging
149
- const baseClient = new BaseAPIClient(
150
- 'https://api.example.com',
151
- { 'Content-Type': 'application/json' },
152
- getLogger() // Winston logger instance
153
- );
154
135
  ```
155
136
 
156
137
  ## Configuration Options
@@ -184,19 +165,30 @@ const config: AutomationConfig = {
184
165
  ## Generated Structure
185
166
 
186
167
  ```
187
- src/clients/
188
- ├── BaseAPIClient.ts # Base client (auto-copied)
189
- └── generatedClients/
190
- └── MyService/
191
- ├── Activity/
192
- ├── types.ts
193
- └── MyServiceActivityClient.ts
194
- ├── Users/
195
- ├── types.ts
196
- └── MyServiceUsersClient.ts
197
- └── Root/
198
- ├── types.ts
199
- └── MyServiceRootClient.ts
168
+ src/
169
+ ├── clients/
170
+ │ ├── BaseAPIClient.ts # Base client (auto-copied)
171
+ └── generatedClients/
172
+ │ └── MyService/
173
+ ├── Activity/
174
+ ├── types.ts
175
+ │ │ └── MyServiceActivityClient.ts
176
+ ├── Users/
177
+ ├── types.ts
178
+ │ │ └── MyServiceUsersClient.ts
179
+ │ └── Root/
180
+ │ ├── types.ts
181
+ │ └── MyServiceRootClient.ts
182
+ ├── fixtures/
183
+ │ └── fixtures.ts # Playwright fixtures with typed clients
184
+ ├── helpers/
185
+ │ ├── ApiStatusCodes.ts # Named HTTP status constants
186
+ │ └── SetupHelpers.ts # Precondition / teardown helpers
187
+ └── utils/
188
+ ├── ApiAssertions.ts # Typed assertion helpers
189
+ ├── SecurityPayloads.ts # Security test payloads
190
+ ├── TestDataGenerator.ts # Random test data builders
191
+ └── TypeValidator.ts # Runtime type validation
200
192
  ```
201
193
 
202
194
  ## Peer Dependencies
package/dist/api.d.ts CHANGED
@@ -14,6 +14,8 @@ export declare function generate(options: {
14
14
  outputDir: string;
15
15
  baseClientPath?: string;
16
16
  copyBaseClient?: boolean;
17
+ copyHelperFunctions?: boolean;
18
+ helperFunctionsDir?: string;
17
19
  }): Promise<GeneratorResult>;
18
20
  /**
19
21
  * Generate API clients from a configuration object
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAA2C,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAgB,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAoB,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAIrF;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,GAAG,OAAO,CAAC,eAAe,CAAC,CA4B3B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CActF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAuC9E"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,gBAAgB,EAA2C,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAgB,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAoB,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAKrF;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,eAAe,CAAC,CAmC3B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBtF;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwC9E"}
package/dist/api.js CHANGED
@@ -46,15 +46,20 @@ const types_1 = require("./config/types");
46
46
  const run_generator_1 = require("./utils/swagger/run-generator");
47
47
  const SwaggerGenerator_1 = require("./utils/swagger/SwaggerGenerator");
48
48
  const copyBaseClient_1 = require("./utils/copyBaseClient");
49
+ const copyHelpers_1 = require("./utils/copyHelpers");
49
50
  /**
50
51
  * Generate API clients from a single swagger source
51
52
  */
52
53
  async function generate(options) {
53
- const { source, type, outputDir, baseClientPath, copyBaseClient: shouldCopyBaseClient = true, } = options;
54
+ const { source, type, outputDir, baseClientPath, copyBaseClient: shouldCopyBaseClient = true, copyHelperFunctions: shouldCopyHelpers = true, helperFunctionsDir, } = options;
54
55
  // Copy BaseAPIClient if needed
55
56
  if (shouldCopyBaseClient && !baseClientPath) {
56
57
  await (0, copyBaseClient_1.copyBaseClient)(outputDir);
57
58
  }
59
+ // Copy helper/utility files if needed
60
+ if (shouldCopyHelpers) {
61
+ await (0, copyHelpers_1.copyHelpers)(outputDir, helperFunctionsDir);
62
+ }
58
63
  const generatedClientsDir = path.join(outputDir, 'generatedClients');
59
64
  await fs.promises.mkdir(generatedClientsDir, { recursive: true });
60
65
  const generator = new SwaggerGenerator_1.SwaggerGenerator({
@@ -83,6 +88,10 @@ async function generateFromConfig(config) {
83
88
  // Use the default base client path relative to generated clients
84
89
  mergedConfig.baseClientPath = types_1.DEFAULT_BASE_CLIENT_PATH;
85
90
  }
91
+ // Copy helper/utility files if needed
92
+ if (mergedConfig.copyHelperFunctions !== false) {
93
+ await (0, copyHelpers_1.copyHelpers)(mergedConfig.outputDir, mergedConfig.helperFunctionsDir);
94
+ }
86
95
  return (0, run_generator_1.runGenerator)(mergedConfig);
87
96
  }
88
97
  /**
@@ -106,6 +115,7 @@ async function loadConfig(configPath) {
106
115
  transpileOnly: true,
107
116
  compilerOptions: {
108
117
  module: 'commonjs',
118
+ moduleResolution: 'node',
109
119
  },
110
120
  });
111
121
  }
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -131,6 +131,9 @@ const config: AutomationConfig = {
131
131
  // Whether to copy BaseAPIClient.ts to output directory
132
132
  copyBaseClient: true,
133
133
 
134
+ // Whether to copy helper/utility files (TestDataGenerator, ApiAssertions, TypeValidator, ApiStatusCodes)
135
+ copyHelperFunctions: true,
136
+
134
137
  // BaseAPIClient import path (relative to generated client files)
135
138
  // Generated clients are at: outputDir/generatedClients/FolderName/
136
139
  // Default: '../../BaseAPIClient' - library will copy BaseAPIClient.ts to outputDir
@@ -162,6 +165,10 @@ const config: AutomationConfig = {
162
165
  // Default: true
163
166
  generateFixtures: true,
164
167
 
168
+ // Output directory for the generated fixtures file
169
+ // Default: same as outputDir
170
+ fixturesDir: path.join(__dirname, 'src/fixtures'),
171
+
165
172
  // Swagger/OpenAPI sources
166
173
  sources: [
167
174
  // Example: Local file
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -91,6 +91,19 @@ export interface AutomationConfig {
91
91
  * Default: true (if baseClientPath is not provided)
92
92
  */
93
93
  copyBaseClient?: boolean;
94
+ /**
95
+ * Optional: Whether to copy helper/utility files to output directory
96
+ * Copies: TestDataGenerator, ApiAssertions, TypeValidator, CleanupManager,
97
+ * SecurityPayloads, ResponseLogger (utils/) and ApiStatusCodes, SetupHelpers (helpers/)
98
+ * Default: true
99
+ */
100
+ copyHelperFunctions?: boolean;
101
+ /**
102
+ * Optional: Base directory for helper/utility files.
103
+ * By default, files are written to the parent of outputDir (e.g. src/)
104
+ * so that when outputDir is src/clients/, helpers land at src/utils/ and src/helpers/.
105
+ */
106
+ helperFunctionsDir?: string;
94
107
  /**
95
108
  * Optional: Whether to clean output directory before generation
96
109
  */
@@ -115,6 +128,12 @@ export interface AutomationConfig {
115
128
  * Default: true
116
129
  */
117
130
  generateFixtures?: boolean;
131
+ /**
132
+ * Optional: Output directory for the generated fixtures file.
133
+ * Can be absolute or relative to project root.
134
+ * Default: same as outputDir
135
+ */
136
+ fixturesDir?: string;
118
137
  }
119
138
  /**
120
139
  * Default logger configuration
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAErB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAOjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,gBAAgB,CAQnD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,YAAY;IAC5B;;;;OAIG;IACH,KAAK,CAAC,EAAE,QAAQ,CAAC;IAEjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IACnC;;OAEG;IACH,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC;IAErB;;;;;OAKG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;OAGG;IACH,SAAS,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,OAAO,EAAE,mBAAmB,EAAE,CAAC;IAE/B;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAEhC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,YAOjC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,wBAAwB,CAAC;AAE9D,eAAO,MAAM,aAAa,EAAE,OAAO,CAAC,gBAAgB,CAWnD,CAAC"}
@@ -25,9 +25,12 @@ exports.defaultConfig = {
25
25
  cleanOutput: true,
26
26
  parallel: false,
27
27
  copyBaseClient: true,
28
+ copyHelperFunctions: true,
29
+ helperFunctionsDir: undefined, // Default: parent of outputDir
28
30
  baseClientPath: exports.DEFAULT_BASE_CLIENT_PATH,
29
31
  logger: exports.defaultLoggerConfig,
30
32
  prettierConfig: undefined, // Use default Prettier config
31
33
  generateFixtures: true,
34
+ fixturesDir: undefined, // Default: same as outputDir
32
35
  };
33
36
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAyIH;;GAEG;AACU,QAAA,mBAAmB,GAAiB;IAChD,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,OAAO,EAAE,MAAM;IAC5B,QAAQ,EAAE,CAAC;CACX,CAAC;AAEF;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAEjD,QAAA,aAAa,GAA8B;IACvD,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,IAAI;IACpB,cAAc,EAAE,gCAAwB;IACxC,MAAM,EAAE,2BAAmB;IAC3B,cAAc,EAAE,SAAS,EAAE,8BAA8B;IACzD,gBAAgB,EAAE,IAAI;CACtB,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA+JH;;GAEG;AACU,QAAA,mBAAmB,GAAiB;IAChD,KAAK,EAAE,MAAM;IACb,SAAS,EAAE,QAAQ;IACnB,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,OAAO,EAAE,MAAM;IAC5B,QAAQ,EAAE,CAAC;CACX,CAAC;AAEF;;;;GAIG;AACU,QAAA,wBAAwB,GAAG,qBAAqB,CAAC;AAEjD,QAAA,aAAa,GAA8B;IACvD,WAAW,EAAE,IAAI;IACjB,QAAQ,EAAE,KAAK;IACf,cAAc,EAAE,IAAI;IACpB,mBAAmB,EAAE,IAAI;IACzB,kBAAkB,EAAE,SAAS,EAAE,+BAA+B;IAC9D,cAAc,EAAE,gCAAwB;IACxC,MAAM,EAAE,2BAAmB;IAC3B,cAAc,EAAE,SAAS,EAAE,8BAA8B;IACzD,gBAAgB,EAAE,IAAI;IACtB,WAAW,EAAE,SAAS,EAAE,6BAA6B;CACrD,CAAC"}
package/dist/index.d.ts CHANGED
@@ -11,10 +11,11 @@ export * from './utils/swagger/types';
11
11
  export * from './utils/swagger/utils/naming';
12
12
  export * from './utils/swagger/utils/pathUtils';
13
13
  export { AutomationConfig, SwaggerSourceConfig, LoggerConfig, LogLevel, defaultConfig, defaultLoggerConfig, DEFAULT_BASE_CLIENT_PATH, } from './config/types';
14
- export { default as logger, getLogger, configureLogger, getLoggerConfig, persistLoggerConfig, LOGGER_CONFIG_FILE, logRequest, logError, } from './utils/logger';
14
+ export { default as logger, getLogger, configureLogger, getLoggerConfig, logRequest, logError, } from './utils/logger';
15
15
  export { formatCode, formatFile, formatFiles, loadPrettierConfig, clearPrettierCache, } from './utils/formatter';
16
16
  export { runGenerator, RunResults } from './utils/swagger/run-generator';
17
17
  export { BaseAPIClient, RequestOptions, APIResponseResult, QueryParamValue, } from './clients/BaseAPIClient';
18
18
  export { copyBaseClient } from './utils/copyBaseClient';
19
+ export { copyHelpers } from './utils/copyHelpers';
19
20
  export { generate, generateFromConfig, loadConfig } from './api';
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD,cAAc,uBAAuB,CAAC;AAGtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAGhD,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,OAAO,IAAI,MAAM,EACjB,SAAS,EACT,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,EACV,QAAQ,GACR,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GACf,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAChB,eAAe,GACf,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAGxD,cAAc,uBAAuB,CAAC;AAGtC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAGhD,OAAO,EACN,gBAAgB,EAChB,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,aAAa,EACb,mBAAmB,EACnB,wBAAwB,GACxB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,OAAO,IAAI,MAAM,EACjB,SAAS,EACT,eAAe,EACf,eAAe,EACf,UAAU,EACV,QAAQ,GACR,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACN,UAAU,EACV,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAGzE,OAAO,EACN,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,GACf,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
21
21
  return (mod && mod.__esModule) ? mod : { "default": mod };
22
22
  };
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
- exports.loadConfig = exports.generateFromConfig = exports.generate = exports.copyBaseClient = exports.BaseAPIClient = exports.runGenerator = exports.clearPrettierCache = exports.loadPrettierConfig = exports.formatFiles = exports.formatFile = exports.formatCode = exports.logError = exports.logRequest = exports.LOGGER_CONFIG_FILE = exports.persistLoggerConfig = exports.getLoggerConfig = exports.configureLogger = exports.getLogger = exports.logger = exports.DEFAULT_BASE_CLIENT_PATH = exports.defaultLoggerConfig = exports.defaultConfig = exports.FileWriter = exports.ClientGenerator = exports.TypeGenerator = exports.SwaggerParser = exports.generateFromUrl = exports.generateFromFile = exports.SwaggerGenerator = void 0;
24
+ exports.loadConfig = exports.generateFromConfig = exports.generate = exports.copyHelpers = exports.copyBaseClient = exports.BaseAPIClient = exports.runGenerator = exports.clearPrettierCache = exports.loadPrettierConfig = exports.formatFiles = exports.formatFile = exports.formatCode = exports.logError = exports.logRequest = exports.getLoggerConfig = exports.configureLogger = exports.getLogger = exports.logger = exports.DEFAULT_BASE_CLIENT_PATH = exports.defaultLoggerConfig = exports.defaultConfig = exports.FileWriter = exports.ClientGenerator = exports.TypeGenerator = exports.SwaggerParser = exports.generateFromUrl = exports.generateFromFile = exports.SwaggerGenerator = void 0;
25
25
  // Core generator exports
26
26
  var SwaggerGenerator_1 = require("./utils/swagger/SwaggerGenerator");
27
27
  Object.defineProperty(exports, "SwaggerGenerator", { enumerable: true, get: function () { return SwaggerGenerator_1.SwaggerGenerator; } });
@@ -51,8 +51,6 @@ Object.defineProperty(exports, "logger", { enumerable: true, get: function () {
51
51
  Object.defineProperty(exports, "getLogger", { enumerable: true, get: function () { return logger_1.getLogger; } });
52
52
  Object.defineProperty(exports, "configureLogger", { enumerable: true, get: function () { return logger_1.configureLogger; } });
53
53
  Object.defineProperty(exports, "getLoggerConfig", { enumerable: true, get: function () { return logger_1.getLoggerConfig; } });
54
- Object.defineProperty(exports, "persistLoggerConfig", { enumerable: true, get: function () { return logger_1.persistLoggerConfig; } });
55
- Object.defineProperty(exports, "LOGGER_CONFIG_FILE", { enumerable: true, get: function () { return logger_1.LOGGER_CONFIG_FILE; } });
56
54
  Object.defineProperty(exports, "logRequest", { enumerable: true, get: function () { return logger_1.logRequest; } });
57
55
  Object.defineProperty(exports, "logError", { enumerable: true, get: function () { return logger_1.logError; } });
58
56
  // Formatter exports - for formatting generated code
@@ -71,6 +69,8 @@ Object.defineProperty(exports, "BaseAPIClient", { enumerable: true, get: functio
71
69
  // Copy utilities for generated output
72
70
  var copyBaseClient_1 = require("./utils/copyBaseClient");
73
71
  Object.defineProperty(exports, "copyBaseClient", { enumerable: true, get: function () { return copyBaseClient_1.copyBaseClient; } });
72
+ var copyHelpers_1 = require("./utils/copyHelpers");
73
+ Object.defineProperty(exports, "copyHelpers", { enumerable: true, get: function () { return copyHelpers_1.copyHelpers; } });
74
74
  // Programmatic API
75
75
  var api_1 = require("./api");
76
76
  Object.defineProperty(exports, "generate", { enumerable: true, get: function () { return api_1.generate; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,qEAM0C;AALzC,oHAAA,gBAAgB,OAAA;AAChB,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AAIhB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,mEAAkE;AAAzD,kHAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,wGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsC;AAEtC,kBAAkB;AAClB,+DAA6C;AAC7C,kEAAgD;AAEhD,eAAe;AACf,wCAQwB;AAHvB,sGAAA,aAAa,OAAA;AACb,4GAAA,mBAAmB,OAAA;AACnB,iHAAA,wBAAwB,OAAA;AAGzB,gEAAgE;AAChE,yCASwB;AARvB,iHAAA,OAAO,OAAU;AACjB,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,6GAAA,mBAAmB,OAAA;AACnB,4GAAA,kBAAkB,OAAA;AAClB,oGAAA,UAAU,OAAA;AACV,kGAAA,QAAQ,OAAA;AAGT,oDAAoD;AACpD,+CAM2B;AAL1B,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,wGAAA,WAAW,OAAA;AACX,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAGnB,SAAS;AACT,+DAAyE;AAAhE,6GAAA,YAAY,OAAA;AAErB,kCAAkC;AAClC,yDAKiC;AAJhC,8GAAA,aAAa,OAAA;AAMd,sCAAsC;AACtC,yDAAwD;AAA/C,gHAAA,cAAc,OAAA;AAEvB,mBAAmB;AACnB,6BAAiE;AAAxD,+FAAA,QAAQ,OAAA;AAAE,yGAAA,kBAAkB,OAAA;AAAE,iGAAA,UAAU,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;AAEH,yBAAyB;AACzB,qEAM0C;AALzC,oHAAA,gBAAgB,OAAA;AAChB,oHAAA,gBAAgB,OAAA;AAChB,mHAAA,eAAe,OAAA;AAIhB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,+DAA8D;AAArD,8GAAA,aAAa,OAAA;AACtB,mEAAkE;AAAzD,kHAAA,eAAe,OAAA;AACxB,yDAAwD;AAA/C,wGAAA,UAAU,OAAA;AAEnB,kBAAkB;AAClB,wDAAsC;AAEtC,kBAAkB;AAClB,+DAA6C;AAC7C,kEAAgD;AAEhD,eAAe;AACf,wCAQwB;AAHvB,sGAAA,aAAa,OAAA;AACb,4GAAA,mBAAmB,OAAA;AACnB,iHAAA,wBAAwB,OAAA;AAGzB,gEAAgE;AAChE,yCAOwB;AANvB,iHAAA,OAAO,OAAU;AACjB,mGAAA,SAAS,OAAA;AACT,yGAAA,eAAe,OAAA;AACf,yGAAA,eAAe,OAAA;AACf,oGAAA,UAAU,OAAA;AACV,kGAAA,QAAQ,OAAA;AAGT,oDAAoD;AACpD,+CAM2B;AAL1B,uGAAA,UAAU,OAAA;AACV,uGAAA,UAAU,OAAA;AACV,wGAAA,WAAW,OAAA;AACX,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAGnB,SAAS;AACT,+DAAyE;AAAhE,6GAAA,YAAY,OAAA;AAErB,kCAAkC;AAClC,yDAKiC;AAJhC,8GAAA,aAAa,OAAA;AAMd,sCAAsC;AACtC,yDAAwD;AAA/C,gHAAA,cAAc,OAAA;AACvB,mDAAkD;AAAzC,0GAAA,WAAW,OAAA;AAEpB,mBAAmB;AACnB,6BAAiE;AAAxD,+FAAA,QAAQ,OAAA;AAAE,yGAAA,kBAAkB,OAAA;AAAE,iGAAA,UAAU,OAAA"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Utility to copy helper/utility files to user's project
3
+ *
4
+ * Copies:
5
+ * utils/ — TestDataGenerator, ApiAssertions, TypeValidator, SecurityPayloads
6
+ * helpers/ — ApiStatusCodes, SetupHelpers
7
+ *
8
+ * Files are written to the PARENT of outputDir so they land in src/utils/ and
9
+ * src/helpers/ when outputDir is src/clients/. Override with helperFunctionsDir.
10
+ */
11
+ /**
12
+ * Copy all helper/utility files to the user's project.
13
+ *
14
+ * By default, files are written to the PARENT of outputDir so that when
15
+ * outputDir is `src/clients/`, helpers land at `src/utils/` and `src/helpers/`.
16
+ *
17
+ * Override with an explicit `helperFunctionsDir` to write elsewhere.
18
+ *
19
+ * @param outputDir The main outputDir from config (e.g. `src/clients/`)
20
+ * @param helperFunctionsDir Optional explicit base dir for helpers
21
+ * @returns Array of absolute paths of written files
22
+ */
23
+ export declare function copyHelpers(outputDir: string, helperFunctionsDir?: string): Promise<string[]>;
24
+ //# sourceMappingURL=copyHelpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyHelpers.d.ts","sourceRoot":"","sources":["../../src/utils/copyHelpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAmCH;;;;;;;;;;;GAWG;AACH,wBAAsB,WAAW,CAChC,SAAS,EAAE,MAAM,EACjB,kBAAkB,CAAC,EAAE,MAAM,GACzB,OAAO,CAAC,MAAM,EAAE,CAAC,CAsBnB"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ /**
3
+ * Utility to copy helper/utility files to user's project
4
+ *
5
+ * Copies:
6
+ * utils/ — TestDataGenerator, ApiAssertions, TypeValidator, SecurityPayloads
7
+ * helpers/ — ApiStatusCodes, SetupHelpers
8
+ *
9
+ * Files are written to the PARENT of outputDir so they land in src/utils/ and
10
+ * src/helpers/ when outputDir is src/clients/. Override with helperFunctionsDir.
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ var __importDefault = (this && this.__importDefault) || function (mod) {
46
+ return (mod && mod.__esModule) ? mod : { "default": mod };
47
+ };
48
+ Object.defineProperty(exports, "__esModule", { value: true });
49
+ exports.copyHelpers = copyHelpers;
50
+ const fs = __importStar(require("fs"));
51
+ const path = __importStar(require("path"));
52
+ const logger_1 = __importDefault(require("./logger"));
53
+ const templates_1 = require("./templates");
54
+ const HELPER_FILES = [
55
+ // utils/
56
+ { relativePath: 'utils/TestDataGenerator.ts', content: templates_1.TEST_DATA_GENERATOR_CONTENT },
57
+ { relativePath: 'utils/ApiAssertions.ts', content: templates_1.API_ASSERTIONS_CONTENT },
58
+ { relativePath: 'utils/TypeValidator.ts', content: templates_1.TYPE_VALIDATOR_CONTENT },
59
+ { relativePath: 'utils/SecurityPayloads.ts', content: templates_1.SECURITY_PAYLOADS_CONTENT },
60
+ // helpers/
61
+ { relativePath: 'helpers/ApiStatusCodes.ts', content: templates_1.API_STATUS_CODES_CONTENT },
62
+ { relativePath: 'helpers/SetupHelpers.ts', content: templates_1.SETUP_HELPERS_CONTENT },
63
+ ];
64
+ // ── Public API ───────────────────────────────────────────────────────────
65
+ /**
66
+ * Copy all helper/utility files to the user's project.
67
+ *
68
+ * By default, files are written to the PARENT of outputDir so that when
69
+ * outputDir is `src/clients/`, helpers land at `src/utils/` and `src/helpers/`.
70
+ *
71
+ * Override with an explicit `helperFunctionsDir` to write elsewhere.
72
+ *
73
+ * @param outputDir The main outputDir from config (e.g. `src/clients/`)
74
+ * @param helperFunctionsDir Optional explicit base dir for helpers
75
+ * @returns Array of absolute paths of written files
76
+ */
77
+ async function copyHelpers(outputDir, helperFunctionsDir) {
78
+ const baseDir = helperFunctionsDir
79
+ ? path.resolve(helperFunctionsDir)
80
+ : path.resolve(outputDir, '..');
81
+ logger_1.default.info(`Copying helper functions to: ${baseDir}`);
82
+ const written = [];
83
+ for (const file of HELPER_FILES) {
84
+ const targetPath = path.join(baseDir, file.relativePath);
85
+ // Ensure parent directory exists
86
+ await fs.promises.mkdir(path.dirname(targetPath), { recursive: true });
87
+ await fs.promises.writeFile(targetPath, file.content, 'utf-8');
88
+ logger_1.default.info(`Helper copied to: ${targetPath}`);
89
+ written.push(targetPath);
90
+ }
91
+ logger_1.default.info(`Copied ${written.length} helper file(s)`);
92
+ return written;
93
+ }
94
+ //# sourceMappingURL=copyHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"copyHelpers.js","sourceRoot":"","sources":["../../src/utils/copyHelpers.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CH,kCAyBC;AAtED,uCAAyB;AACzB,2CAA6B;AAC7B,sDAA8B;AAC9B,2CAOqB;AAUrB,MAAM,YAAY,GAAiB;IAClC,SAAS;IACT,EAAE,YAAY,EAAE,4BAA4B,EAAE,OAAO,EAAE,uCAA2B,EAAE;IACpF,EAAE,YAAY,EAAE,wBAAwB,EAAE,OAAO,EAAE,kCAAsB,EAAE;IAC3E,EAAE,YAAY,EAAE,wBAAwB,EAAE,OAAO,EAAE,kCAAsB,EAAE;IAC3E,EAAE,YAAY,EAAE,2BAA2B,EAAE,OAAO,EAAE,qCAAyB,EAAE;IACjF,WAAW;IACX,EAAE,YAAY,EAAE,2BAA2B,EAAE,OAAO,EAAE,oCAAwB,EAAE;IAChF,EAAE,YAAY,EAAE,yBAAyB,EAAE,OAAO,EAAE,iCAAqB,EAAE;CAC3E,CAAC;AAEF,4EAA4E;AAE5E;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,WAAW,CAChC,SAAiB,EACjB,kBAA2B;IAE3B,MAAM,OAAO,GAAG,kBAAkB;QACjC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC;QAClC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAEjC,gBAAM,CAAC,IAAI,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;IAEvD,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;QACjC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzD,iCAAiC;QACjC,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEvE,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC/D,gBAAM,CAAC,IAAI,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC1B,CAAC;IAED,gBAAM,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,iBAAiB,CAAC,CAAC;IACvD,OAAO,OAAO,CAAC;AAChB,CAAC"}
@@ -1,10 +1,5 @@
1
1
  import winston from 'winston';
2
2
  import { LoggerConfig } from '../config/types';
3
- /**
4
- * Pre-resolved logger config file written during generation.
5
- * This JSON file can always be loaded without ts-node.
6
- */
7
- export declare const LOGGER_CONFIG_FILE = ".swagger-logger-config.json";
8
3
  /**
9
4
  * Initialize or reconfigure the logger with given configuration
10
5
  * Call this at application startup with your config
@@ -19,15 +14,6 @@ export declare function getLogger(): winston.Logger;
19
14
  * Get the current logger configuration
20
15
  */
21
16
  export declare function getLoggerConfig(): LoggerConfig;
22
- /**
23
- * Persist the logger configuration as a JSON file in the project root.
24
- * This allows the logger to discover the consumer's config during Playwright
25
- * test runs without needing ts-node to load the .ts config file.
26
- *
27
- * Relative outputDir paths are resolved to absolute paths so they remain
28
- * correct regardless of the working directory at runtime.
29
- */
30
- export declare function persistLoggerConfig(config: LoggerConfig): void;
31
17
  declare const logger: winston.Logger;
32
18
  export declare const logRequest: (method: string, url: string, statusCode: number, duration: number) => void;
33
19
  export declare const logError: (error: Error, context?: string) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAiC,MAAM,iBAAiB,CAAC;AAO9E;;;GAGG;AACH,eAAO,MAAM,kBAAkB,gCAAgC,CAAC;AAgMhE;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAIzE;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,CAM1C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAY9D;AAGD,QAAA,MAAM,MAAM,gBAAc,CAAC;AAG3B,eAAO,MAAM,UAAU,GACtB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,IAEF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,EAAE,gBAAY,KAAG,IAGrD,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,OAAO,EAAE,YAAY,EAAiC,MAAM,iBAAiB,CAAC;AAuL9E;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,GAAE,YAAiB,GAAG,OAAO,CAAC,MAAM,CAIzE;AAED;;;GAGG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAAC,MAAM,CAM1C;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C;AAGD,QAAA,MAAM,MAAM,gBAAc,CAAC;AAG3B,eAAO,MAAM,UAAU,GACtB,QAAQ,MAAM,EACd,KAAK,MAAM,EACX,YAAY,MAAM,EAClB,UAAU,MAAM,KACd,IAEF,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,OAAO,KAAK,EAAE,gBAAY,KAAG,IAGrD,CAAC;AAEF,eAAe,MAAM,CAAC"}