swagger-to-playwright-api-clients 1.0.27 → 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.
- package/README.md +49 -57
- package/dist/api.d.ts +2 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +10 -1
- package/dist/api.js.map +1 -1
- package/dist/cli.js +4 -1
- package/dist/cli.js.map +1 -1
- package/dist/config/types.d.ts +13 -0
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +2 -0
- package/dist/config/types.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/utils/copyHelpers.d.ts +24 -0
- package/dist/utils/copyHelpers.d.ts.map +1 -0
- package/dist/utils/copyHelpers.js +94 -0
- package/dist/utils/copyHelpers.js.map +1 -0
- package/dist/utils/logger.d.ts +0 -14
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +5 -47
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/swagger/run-generator.d.ts.map +1 -1
- package/dist/utils/swagger/run-generator.js +0 -3
- package/dist/utils/swagger/run-generator.js.map +1 -1
- package/dist/utils/templates/ApiAssertions.template.d.ts +6 -0
- package/dist/utils/templates/ApiAssertions.template.d.ts.map +1 -0
- package/dist/utils/templates/ApiAssertions.template.js +128 -0
- package/dist/utils/templates/ApiAssertions.template.js.map +1 -0
- package/dist/utils/templates/ApiStatusCodes.template.d.ts +6 -0
- package/dist/utils/templates/ApiStatusCodes.template.d.ts.map +1 -0
- package/dist/utils/templates/ApiStatusCodes.template.js +45 -0
- package/dist/utils/templates/ApiStatusCodes.template.js.map +1 -0
- package/dist/utils/templates/SecurityPayloads.template.d.ts +6 -0
- package/dist/utils/templates/SecurityPayloads.template.d.ts.map +1 -0
- package/dist/utils/templates/SecurityPayloads.template.js +156 -0
- package/dist/utils/templates/SecurityPayloads.template.js.map +1 -0
- package/dist/utils/templates/SetupHelpers.template.d.ts +6 -0
- package/dist/utils/templates/SetupHelpers.template.d.ts.map +1 -0
- package/dist/utils/templates/SetupHelpers.template.js +69 -0
- package/dist/utils/templates/SetupHelpers.template.js.map +1 -0
- package/dist/utils/templates/TestDataGenerator.template.d.ts +6 -0
- package/dist/utils/templates/TestDataGenerator.template.d.ts.map +1 -0
- package/dist/utils/templates/TestDataGenerator.template.js +407 -0
- package/dist/utils/templates/TestDataGenerator.template.js.map +1 -0
- package/dist/utils/templates/TypeValidator.template.d.ts +6 -0
- package/dist/utils/templates/TypeValidator.template.d.ts.map +1 -0
- package/dist/utils/templates/TypeValidator.template.js +194 -0
- package/dist/utils/templates/TypeValidator.template.js.map +1 -0
- package/dist/utils/templates/index.d.ts +10 -0
- package/dist/utils/templates/index.d.ts.map +1 -0
- package/dist/utils/templates/index.js +19 -0
- package/dist/utils/templates/index.js.map +1 -0
- 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
|
-
##
|
|
90
|
+
## Wrting Tests with Generated Clients
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
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
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
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
|
-
|
|
102
|
+
test('get all pets', async ({ petClient }) => {
|
|
103
|
+
const { body, status } = await petClient.findPetsByStatus('available');
|
|
111
104
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
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
|
|
112
|
+
const { body, status } = await petClient.addPet(payload);
|
|
127
113
|
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
|
|
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 {
|
|
139
|
-
import { BaseAPIClient } from './clients/BaseAPIClient';
|
|
127
|
+
import { configureLogger, getLogger } from 'swagger-to-playwright-api-clients';
|
|
140
128
|
|
|
141
|
-
// Configure logger (optional
|
|
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/
|
|
188
|
-
├──
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
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;
|
|
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
|
/**
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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
|
|
@@ -164,7 +167,7 @@ const config: AutomationConfig = {
|
|
|
164
167
|
|
|
165
168
|
// Output directory for the generated fixtures file
|
|
166
169
|
// Default: same as outputDir
|
|
167
|
-
|
|
170
|
+
fixturesDir: path.join(__dirname, 'src/fixtures'),
|
|
168
171
|
|
|
169
172
|
// Swagger/OpenAPI sources
|
|
170
173
|
sources: [
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AACA;;GAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AAC7B,+BAAiE;AAGjE,MAAM,oBAAoB,GAAG;IAC5B,qBAAqB;IACrB,qBAAqB;IACrB,6BAA6B;IAC7B,6BAA6B;CAC7B,CAAC;AAEF,KAAK,UAAU,cAAc;IAC5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAE1B,KAAK,MAAM,IAAI,IAAI,oBAAoB,EAAE,CAAC;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC/B,OAAO,UAAU,CAAC;QACnB,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AAED,SAAS,SAAS;IACjB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCZ,CAAC,CAAC;AACH,CAAC;AAED,SAAS,YAAY;IACpB,IAAI,CAAC;QACJ,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC;QACnE,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,sCAAsC,WAAW,CAAC,OAAO,EAAE,CAAC,CAAC;IAC1E,CAAC;IAAC,MAAM,CAAC;QACR,OAAO,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;IACzD,CAAC;AACF,CAAC;AAED,KAAK,UAAU,UAAU;IACxB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAEnE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjB,CAAC;IAED,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config/types.d.ts
CHANGED
|
@@ -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
|
*/
|
|
@@ -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;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,
|
|
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"}
|
package/dist/config/types.js
CHANGED
|
@@ -25,6 +25,8 @@ 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
|
package/dist/config/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
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,
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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,
|
|
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"}
|
package/dist/utils/logger.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/dist/utils/logger.js
CHANGED
|
@@ -36,11 +36,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
36
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
-
exports.logError = exports.logRequest =
|
|
39
|
+
exports.logError = exports.logRequest = void 0;
|
|
40
40
|
exports.configureLogger = configureLogger;
|
|
41
41
|
exports.getLogger = getLogger;
|
|
42
42
|
exports.getLoggerConfig = getLoggerConfig;
|
|
43
|
-
exports.persistLoggerConfig = persistLoggerConfig;
|
|
44
43
|
const winston_1 = __importDefault(require("winston"));
|
|
45
44
|
const path_1 = __importDefault(require("path"));
|
|
46
45
|
const fs = __importStar(require("fs"));
|
|
@@ -49,11 +48,6 @@ const types_1 = require("../config/types");
|
|
|
49
48
|
let loggerInstance = null;
|
|
50
49
|
let currentConfig = { ...types_1.defaultLoggerConfig };
|
|
51
50
|
let configLoaded = false;
|
|
52
|
-
/**
|
|
53
|
-
* Pre-resolved logger config file written during generation.
|
|
54
|
-
* This JSON file can always be loaded without ts-node.
|
|
55
|
-
*/
|
|
56
|
-
exports.LOGGER_CONFIG_FILE = '.swagger-logger-config.json';
|
|
57
51
|
/**
|
|
58
52
|
* Config file names to look for (in order of priority)
|
|
59
53
|
*/
|
|
@@ -69,29 +63,15 @@ const CONFIG_FILE_NAMES = [
|
|
|
69
63
|
* even during test runs (not just during generation).
|
|
70
64
|
*
|
|
71
65
|
* Priority:
|
|
72
|
-
* 1. .swagger-
|
|
73
|
-
* 2. generator-config.
|
|
74
|
-
* 3. generator-config.ts / swagger-generator.config.ts (requires ts-node)
|
|
66
|
+
* 1. generator-config.js / swagger-generator.config.js
|
|
67
|
+
* 2. generator-config.ts / swagger-generator.config.ts (requires ts-node)
|
|
75
68
|
*/
|
|
76
69
|
function loadConfigFromFile() {
|
|
77
70
|
if (configLoaded)
|
|
78
71
|
return currentConfig;
|
|
79
72
|
configLoaded = true;
|
|
80
73
|
const cwd = process.cwd();
|
|
81
|
-
// 1. Try
|
|
82
|
-
const jsonConfigPath = path_1.default.join(cwd, exports.LOGGER_CONFIG_FILE);
|
|
83
|
-
if (fs.existsSync(jsonConfigPath)) {
|
|
84
|
-
try {
|
|
85
|
-
const raw = fs.readFileSync(jsonConfigPath, 'utf-8');
|
|
86
|
-
const loggerConfig = JSON.parse(raw);
|
|
87
|
-
currentConfig = { ...types_1.defaultLoggerConfig, ...loggerConfig };
|
|
88
|
-
return currentConfig;
|
|
89
|
-
}
|
|
90
|
-
catch {
|
|
91
|
-
// JSON file exists but can't be parsed — fall through
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
// 2. Try .js config files (no ts-node needed)
|
|
74
|
+
// 1. Try .js config files (no ts-node needed)
|
|
95
75
|
for (const configName of CONFIG_FILE_NAMES) {
|
|
96
76
|
if (!configName.endsWith('.js'))
|
|
97
77
|
continue;
|
|
@@ -110,7 +90,7 @@ function loadConfigFromFile() {
|
|
|
110
90
|
}
|
|
111
91
|
}
|
|
112
92
|
}
|
|
113
|
-
//
|
|
93
|
+
// 2. Try loading .ts config files if ts-node is available
|
|
114
94
|
for (const configName of CONFIG_FILE_NAMES) {
|
|
115
95
|
if (!configName.endsWith('.ts'))
|
|
116
96
|
continue;
|
|
@@ -243,28 +223,6 @@ function getLogger() {
|
|
|
243
223
|
function getLoggerConfig() {
|
|
244
224
|
return { ...currentConfig };
|
|
245
225
|
}
|
|
246
|
-
/**
|
|
247
|
-
* Persist the logger configuration as a JSON file in the project root.
|
|
248
|
-
* This allows the logger to discover the consumer's config during Playwright
|
|
249
|
-
* test runs without needing ts-node to load the .ts config file.
|
|
250
|
-
*
|
|
251
|
-
* Relative outputDir paths are resolved to absolute paths so they remain
|
|
252
|
-
* correct regardless of the working directory at runtime.
|
|
253
|
-
*/
|
|
254
|
-
function persistLoggerConfig(config) {
|
|
255
|
-
try {
|
|
256
|
-
const resolved = { ...config };
|
|
257
|
-
// Resolve relative outputDir to absolute so it works from any cwd
|
|
258
|
-
if (resolved.outputDir && !path_1.default.isAbsolute(resolved.outputDir)) {
|
|
259
|
-
resolved.outputDir = path_1.default.resolve(process.cwd(), resolved.outputDir);
|
|
260
|
-
}
|
|
261
|
-
const configPath = path_1.default.join(process.cwd(), exports.LOGGER_CONFIG_FILE);
|
|
262
|
-
fs.writeFileSync(configPath, JSON.stringify(resolved, null, 2), 'utf-8');
|
|
263
|
-
}
|
|
264
|
-
catch {
|
|
265
|
-
// Non-critical — logger will fall back to other discovery methods
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
226
|
// Create default logger instance
|
|
269
227
|
const logger = getLogger();
|
|
270
228
|
// Utility methods
|