@constantant/openapi-resource-gen 1.3.2 → 1.5.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.
- package/CHANGELOG.md +35 -0
- package/README.md +233 -2
- package/package.json +1 -1
- package/src/executors/generate/schema.json +5 -0
- package/src/generators/api-resource/generator.d.ts +1 -0
- package/src/generators/api-resource/generator.js +56 -3
- package/src/generators/api-resource/generator.js.map +1 -1
- package/src/generators/api-resource/render-mock-file.d.ts +2 -0
- package/src/generators/api-resource/render-mock-file.js +26 -0
- package/src/generators/api-resource/render-mock-file.js.map +1 -0
- package/src/generators/api-resource/render-token.d.ts +1 -0
- package/src/generators/api-resource/render-token.js +1 -0
- package/src/generators/api-resource/render-token.js.map +1 -1
- package/src/generators/api-resource/schema.json +5 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,38 @@
|
|
|
1
|
+
## 1.5.0 (2026-06-09)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **openapi-resource-gen:** add includeMocks to executor schema ([7f2052d](https://github.com/constantant/angular-openapi-gen/commit/7f2052d))
|
|
6
|
+
- **openapi-resource-gen:** add includeMocks option to co-generate .mock.ts files ([8ebddd4](https://github.com/constantant/angular-openapi-gen/commit/8ebddd4))
|
|
7
|
+
|
|
8
|
+
### 🩹 Fixes
|
|
9
|
+
|
|
10
|
+
- **openapi-resource-gen:** auto-register /mock path alias and fix app.config.mock.ts imports ([c65e6a6](https://github.com/constantant/angular-openapi-gen/commit/c65e6a6))
|
|
11
|
+
|
|
12
|
+
### 📖 Documentation
|
|
13
|
+
|
|
14
|
+
- **openapi-resource-gen:** document includeMocks option ([99aaf8b](https://github.com/constantant/angular-openapi-gen/commit/99aaf8b))
|
|
15
|
+
|
|
16
|
+
### 🧱 Updated Dependencies
|
|
17
|
+
|
|
18
|
+
- Updated openapi-resource-mocks to 0.2.0
|
|
19
|
+
|
|
20
|
+
### ❤️ Thank You
|
|
21
|
+
|
|
22
|
+
- Claude Sonnet 4.6
|
|
23
|
+
- kk
|
|
24
|
+
|
|
25
|
+
## 1.4.0 (2026-06-08)
|
|
26
|
+
|
|
27
|
+
### 📖 Documentation
|
|
28
|
+
|
|
29
|
+
- **openapi-resource-gen:** document caching boundary and multipart/form-data mutation pattern ([88211a4](https://github.com/constantant/angular-openapi-gen/commit/88211a4))
|
|
30
|
+
|
|
31
|
+
### ❤️ Thank You
|
|
32
|
+
|
|
33
|
+
- Claude Sonnet 4.6
|
|
34
|
+
- kk
|
|
35
|
+
|
|
1
36
|
## 1.3.2 (2026-06-08)
|
|
2
37
|
|
|
3
38
|
### 🩹 Fixes
|
package/README.md
CHANGED
|
@@ -86,6 +86,7 @@ Re-run the same command whenever your spec changes — the generator overwrites
|
|
|
86
86
|
| `tagFilter` | no | all tags | Comma-separated list of OpenAPI tags to include |
|
|
87
87
|
| `namingConvention` | no | `kebab` | `kebab` → `find-pets-by-status.token.ts`; `camel` → `findPetsByStatus.token.ts` |
|
|
88
88
|
| `providedIn` | no | `none` | `none` or `root` — see table above |
|
|
89
|
+
| `includeMocks` | no | `false` | Emit a `.mock.ts` per endpoint plus `index.mock.ts` barrels — requires [`@constantant/openapi-resource-mocks`](https://www.npmjs.com/package/@constantant/openapi-resource-mocks) |
|
|
89
90
|
|
|
90
91
|
---
|
|
91
92
|
|
|
@@ -97,15 +98,119 @@ Re-run the same command whenever your spec changes — the generator overwrites
|
|
|
97
98
|
api-base-url.token.ts # InjectionToken<string> for the API root URL
|
|
98
99
|
{scheme}.security-token.ts # one per security scheme (if any)
|
|
99
100
|
index.ts # re-exports all tag barrels + base-url + security tokens
|
|
101
|
+
index.mock.ts # (--includeMocks) re-exports all tag mock barrels
|
|
100
102
|
{tag}/
|
|
101
103
|
index.ts # re-exports all token files in this tag folder
|
|
104
|
+
index.mock.ts # (--includeMocks) re-exports all mock files in this tag
|
|
102
105
|
{operation-id}.token.ts # one file per endpoint
|
|
106
|
+
{operation-id}.mock.ts # (--includeMocks) typed mock provider per endpoint
|
|
103
107
|
```
|
|
104
108
|
|
|
105
109
|
Tags map to subfolders; untagged operations go into `default/`.
|
|
106
110
|
|
|
107
111
|
---
|
|
108
112
|
|
|
113
|
+
## Mock providers (`--includeMocks`)
|
|
114
|
+
|
|
115
|
+
Pass `--includeMocks` to co-generate a typed `provide{Operation}Mock()` wrapper
|
|
116
|
+
alongside every `.token.ts` file. This requires
|
|
117
|
+
[`@constantant/openapi-resource-mocks`](https://www.npmjs.com/package/@constantant/openapi-resource-mocks)
|
|
118
|
+
to be installed:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
npm install -D @constantant/openapi-resource-mocks
|
|
122
|
+
|
|
123
|
+
npx nx g @constantant/openapi-resource-gen:api-resource \
|
|
124
|
+
--specPath=specs/petstore.yaml \
|
|
125
|
+
--outputDir=libs/petstore-data-access/src \
|
|
126
|
+
--baseUrlToken=PETSTORE_BASE_URL \
|
|
127
|
+
--includeMocks
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### Generated mock file
|
|
131
|
+
|
|
132
|
+
Each `.mock.ts` file exports a single `provide{Operation}Mock(initialBehavior?)` function.
|
|
133
|
+
`initialBehavior` is fully typed against the operation's response type — no hand-written interfaces:
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
// pet/find-pets-by-status.mock.ts (generated)
|
|
137
|
+
import { FactoryProvider } from '@angular/core';
|
|
138
|
+
import { provideMockResource } from '@constantant/openapi-resource-mocks';
|
|
139
|
+
import type { ProviderInitialBehavior } from '@constantant/openapi-resource-mocks';
|
|
140
|
+
import { FIND_PETS_BY_STATUS } from './find-pets-by-status.token';
|
|
141
|
+
import type { FindPetsByStatusResponse } from './find-pets-by-status.token';
|
|
142
|
+
|
|
143
|
+
export function provideFindPetsByStatusMock(
|
|
144
|
+
initialBehavior?: ProviderInitialBehavior<FindPetsByStatusResponse>,
|
|
145
|
+
): FactoryProvider {
|
|
146
|
+
return provideMockResource(FIND_PETS_BY_STATUS, 'FIND_PETS_BY_STATUS', initialBehavior);
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
The token name string key is always in sync — renaming an operation in the spec and
|
|
151
|
+
regenerating updates both the token constant and its key automatically.
|
|
152
|
+
|
|
153
|
+
### Usage in app.config.mock.ts
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
// Before — hand-written key strings, no type safety on seed data
|
|
157
|
+
import { provideMockResource } from '@constantant/openapi-resource-mocks';
|
|
158
|
+
import { FIND_PETS_BY_STATUS } from '@myapp/petstore-data-access';
|
|
159
|
+
|
|
160
|
+
provideMockResource(FIND_PETS_BY_STATUS, 'FIND_PETS_BY_STATUS', {
|
|
161
|
+
value: [{ id: 1, name: 'Rex', status: 'available', photoUrls: [] }],
|
|
162
|
+
delay: 500,
|
|
163
|
+
})
|
|
164
|
+
|
|
165
|
+
// After — generated wrapper, fully typed initialBehavior
|
|
166
|
+
import { provideFindPetsByStatusMock } from '@myapp/petstore-data-access';
|
|
167
|
+
|
|
168
|
+
provideFindPetsByStatusMock({
|
|
169
|
+
value: [{ id: 1, name: 'Rex', status: 'available', photoUrls: [] }],
|
|
170
|
+
delay: 500,
|
|
171
|
+
})
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
`initialBehavior` supports:
|
|
175
|
+
|
|
176
|
+
| Shape | Effect |
|
|
177
|
+
|-------|--------|
|
|
178
|
+
| `{ value: T }` | Resolves immediately |
|
|
179
|
+
| `{ value: T, delay: ms }` | Loading for `ms` ms, then resolves |
|
|
180
|
+
| `{ loading: true }` | Stays loading indefinitely |
|
|
181
|
+
| `{ error: unknown }` | Fails immediately |
|
|
182
|
+
| `{ error: unknown, delay: ms }` | Loading for `ms` ms, then fails |
|
|
183
|
+
|
|
184
|
+
### Barrel imports
|
|
185
|
+
|
|
186
|
+
All mock providers for a tag are re-exported from `{tag}/index.mock.ts`; the root
|
|
187
|
+
`index.mock.ts` re-exports all tag barrels. The generator automatically registers a
|
|
188
|
+
`/mock` subpath alias in `tsconfig.base.json` alongside the main path alias, so you
|
|
189
|
+
can import from the mock barrel directly:
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
import {
|
|
193
|
+
provideFindPetsByStatusMock,
|
|
194
|
+
provideAddPetMock,
|
|
195
|
+
} from '@myapp/petstore-data-access/mock';
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
The registered alias looks like:
|
|
199
|
+
|
|
200
|
+
```json
|
|
201
|
+
"@myapp/petstore-data-access/mock": ["libs/petstore-data-access/src/index.mock.ts"]
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Mock providers are intentionally kept out of the main `index.ts` barrel so they
|
|
205
|
+
are never accidentally bundled into a production build.
|
|
206
|
+
|
|
207
|
+
### Stale cleanup
|
|
208
|
+
|
|
209
|
+
Re-running the generator without `--includeMocks` deletes any `.mock.ts` files from
|
|
210
|
+
the previous run. Removing an endpoint from the spec also removes its `.mock.ts`.
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
109
214
|
## Generated token anatomy
|
|
110
215
|
|
|
111
216
|
### GET with query params
|
|
@@ -191,6 +296,80 @@ headers: {
|
|
|
191
296
|
The factory returns `(body: BodyType | Signal<BodyType>) => httpResource(...)`.
|
|
192
297
|
The resource config receives `method: 'POST'` (etc.) and `body` automatically.
|
|
193
298
|
|
|
299
|
+
#### JSON body
|
|
300
|
+
|
|
301
|
+
The common case. Pass a plain object or a signal — `HttpClient` serialises it automatically:
|
|
302
|
+
|
|
303
|
+
```typescript
|
|
304
|
+
const addPet = inject(ADD_PET);
|
|
305
|
+
|
|
306
|
+
readonly newPet = signal<AddPetBody>({ name: 'Rex', status: 'available' });
|
|
307
|
+
readonly result = addPet(this.newPet); // re-posts whenever newPet() changes
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
#### `multipart/form-data` body
|
|
311
|
+
|
|
312
|
+
The generated `${pascal}Body` type is derived from the OpenAPI schema, which
|
|
313
|
+
describes the *shape* of the form fields. At runtime the actual value must be a
|
|
314
|
+
`FormData` object — Angular's `HttpClient` does not encode plain objects as
|
|
315
|
+
multipart. Cast is required at the call site:
|
|
316
|
+
|
|
317
|
+
```typescript
|
|
318
|
+
// Generated (example from Petstore's POST /pet/{petId}/uploadImage):
|
|
319
|
+
//
|
|
320
|
+
// export type UploadFileBody =
|
|
321
|
+
// NonNullable<paths['/pet/{petId}/uploadImage']['post']['requestBody']>
|
|
322
|
+
// ['content']['multipart/form-data'];
|
|
323
|
+
// // → { additionalMetadata?: string; file?: Blob }
|
|
324
|
+
//
|
|
325
|
+
// export const UPLOAD_FILE = new InjectionToken<
|
|
326
|
+
// (petId: string, body: UploadFileBody | Signal<UploadFileBody>)
|
|
327
|
+
// => ReturnType<typeof httpResource<UploadFileResponse>>
|
|
328
|
+
// >('UPLOAD_FILE');
|
|
329
|
+
|
|
330
|
+
@Component({ ... })
|
|
331
|
+
export class UploadComponent {
|
|
332
|
+
private uploadFile = inject(UPLOAD_FILE);
|
|
333
|
+
|
|
334
|
+
readonly selectedFile = signal<File | null>(null);
|
|
335
|
+
readonly notes = signal('');
|
|
336
|
+
|
|
337
|
+
// Build FormData reactively; cast to the spec type so the token accepts it.
|
|
338
|
+
// FormData is the required runtime representation for multipart/form-data —
|
|
339
|
+
// the spec type only describes the field names and shapes, not the encoding.
|
|
340
|
+
private readonly formData = computed(() => {
|
|
341
|
+
const file = this.selectedFile();
|
|
342
|
+
if (!file) return null;
|
|
343
|
+
const fd = new FormData();
|
|
344
|
+
fd.append('file', file);
|
|
345
|
+
fd.append('additionalMetadata', this.notes());
|
|
346
|
+
return fd as unknown as UploadFileBody;
|
|
347
|
+
});
|
|
348
|
+
|
|
349
|
+
readonly upload = this.uploadFile(
|
|
350
|
+
'42', // petId (path param)
|
|
351
|
+
() => this.formData(), // thunk: resource stays idle when formData() is null
|
|
352
|
+
);
|
|
353
|
+
}
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
> **Why the cast?** The OpenAPI schema types `multipart/form-data` bodies as a
|
|
357
|
+
> plain object (e.g. `{ file?: Blob; additionalMetadata?: string }`). This is
|
|
358
|
+
> accurate for type-checking field names and shapes, but `HttpClient` requires
|
|
359
|
+
> an actual `FormData` instance for multipart encoding. The `as unknown as
|
|
360
|
+
> UploadFileBody` cast bridges that gap without losing the field-name safety you
|
|
361
|
+
> get from the spec type.
|
|
362
|
+
|
|
363
|
+
#### `application/x-www-form-urlencoded` body
|
|
364
|
+
|
|
365
|
+
Pass a plain object. Angular's `HttpClient` URL-encodes it automatically — no
|
|
366
|
+
`URLSearchParams` wrapping needed:
|
|
367
|
+
|
|
368
|
+
```typescript
|
|
369
|
+
const submitForm = inject(SUBMIT_FORM);
|
|
370
|
+
readonly result = submitForm({ username: 'alice', password: 's3cr3t' });
|
|
371
|
+
```
|
|
372
|
+
|
|
194
373
|
### Security schemes
|
|
195
374
|
|
|
196
375
|
The generator emits one file per security scheme. Two patterns are used depending on the
|
|
@@ -299,7 +478,8 @@ your lib's `project.json` using the bundled executor:
|
|
|
299
478
|
"options": {
|
|
300
479
|
"specPath": "https://petstore3.swagger.io/api/v3/openapi.yaml",
|
|
301
480
|
"outputDir": "libs/petstore-data-access/src",
|
|
302
|
-
"baseUrlToken": "PETSTORE_BASE_URL"
|
|
481
|
+
"baseUrlToken": "PETSTORE_BASE_URL",
|
|
482
|
+
"includeMocks": true
|
|
303
483
|
}
|
|
304
484
|
}
|
|
305
485
|
}
|
|
@@ -384,6 +564,53 @@ type PetStatus = FindPetsByStatusParams['status']; // 'available' | 'pending' |
|
|
|
384
564
|
|
|
385
565
|
---
|
|
386
566
|
|
|
567
|
+
## Sharing a resource across components
|
|
568
|
+
|
|
569
|
+
Each call to the injected factory function creates an **independent `httpResource` instance**.
|
|
570
|
+
Two components that both call `this.findPetsByStatus(...)` will fire two separate HTTP requests.
|
|
571
|
+
|
|
572
|
+
This is intentional — resources are reactive computations tied to a component's lifetime, and
|
|
573
|
+
`httpResource` does not have a built-in shared cache. For data that should be fetched once and
|
|
574
|
+
shared, hoist the resource call to a root-scoped service:
|
|
575
|
+
|
|
576
|
+
```typescript
|
|
577
|
+
// pets.store.ts (not generated — write this yourself)
|
|
578
|
+
@Service() // Angular 22 shorthand for @Injectable({ providedIn: 'root' })
|
|
579
|
+
export class PetsStore {
|
|
580
|
+
private findPetsByStatus = inject(FIND_PETS_BY_STATUS);
|
|
581
|
+
|
|
582
|
+
readonly status = signal<'available' | 'pending' | 'sold'>('available');
|
|
583
|
+
|
|
584
|
+
// One httpResource instance, shared across any component that injects PetsStore
|
|
585
|
+
readonly pets = this.findPetsByStatus(() => ({ status: this.status() }));
|
|
586
|
+
}
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
```typescript
|
|
590
|
+
// Component A and Component B both inject the same PetsStore singleton —
|
|
591
|
+
// only one HTTP request fires.
|
|
592
|
+
@Component({ ... })
|
|
593
|
+
export class PetsPageComponent {
|
|
594
|
+
readonly store = inject(PetsStore);
|
|
595
|
+
}
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
For per-route isolation, create the resource inside a route-level provider instead:
|
|
599
|
+
|
|
600
|
+
```typescript
|
|
601
|
+
// In the route definition
|
|
602
|
+
{
|
|
603
|
+
path: 'pets',
|
|
604
|
+
component: PetsShellComponent,
|
|
605
|
+
providers: [PetsStore, provideFindPetsByStatus()],
|
|
606
|
+
}
|
|
607
|
+
```
|
|
608
|
+
|
|
609
|
+
This scopes the resource to the route's injector — a new instance is created on
|
|
610
|
+
navigation in and destroyed on navigation out, with no cross-route state leakage.
|
|
611
|
+
|
|
612
|
+
---
|
|
613
|
+
|
|
387
614
|
## Adding a new data-access lib
|
|
388
615
|
|
|
389
616
|
1. Run the generator (pass a URL directly — no curl step needed):
|
|
@@ -398,6 +625,10 @@ type PetStatus = FindPetsByStatusParams['status']; // 'available' | 'pending' |
|
|
|
398
625
|
```json
|
|
399
626
|
"@angular-openapi-gen/myapi-data-access": ["libs/myapi-data-access/src/index.ts"]
|
|
400
627
|
```
|
|
628
|
+
If you used `--includeMocks`, the generator adds the `/mock` subpath alias automatically. If you added the main alias manually, add the mock alias too:
|
|
629
|
+
```json
|
|
630
|
+
"@angular-openapi-gen/myapi-data-access/mock": ["libs/myapi-data-access/src/index.mock.ts"]
|
|
631
|
+
```
|
|
401
632
|
|
|
402
633
|
3. Add base URL provider and token providers to `app.config.ts`.
|
|
403
634
|
|
|
@@ -413,7 +644,7 @@ type PetStatus = FindPetsByStatusParams['status']; // 'available' | 'pending' |
|
|
|
413
644
|
| Type generation | `openapi-typescript` programmatic API | Emit `schema.d.ts` — the single source of truth for all request/response types |
|
|
414
645
|
| Spec dereferencing | `@apidevtools/swagger-parser` | Resolve all `$ref` chains for endpoint extraction |
|
|
415
646
|
| Security parsing | `parseSecuritySchemes(api)` | Extract scheme definitions; resolve per-operation overrides |
|
|
416
|
-
| Code generation | `renderTokenFile()` / `renderSecurityTokenFile()` | Direct string assembly for
|
|
647
|
+
| Code generation | `renderTokenFile()` / `renderSecurityTokenFile()` / `renderMockFile()` | Direct string assembly for token and mock files |
|
|
417
648
|
| Formatting | `@nx/devkit` `formatFiles()` | Runs Prettier over all written files |
|
|
418
649
|
|
|
419
650
|
Hyphenated path parameter names (e.g. `{enterprise-team}` in the GitHub spec)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@constantant/openapi-resource-gen",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.5.0",
|
|
4
4
|
"description": "Nx generator: one InjectionToken per OpenAPI endpoint — tree-shakeable Angular data-access libs via httpResource",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"main": "src/index.js",
|
|
@@ -32,6 +32,11 @@
|
|
|
32
32
|
"enum": ["root", "none"],
|
|
33
33
|
"default": "none",
|
|
34
34
|
"description": "none: export provideX() helpers for scoped provision. root: self-registering singleton."
|
|
35
|
+
},
|
|
36
|
+
"includeMocks": {
|
|
37
|
+
"type": "boolean",
|
|
38
|
+
"default": false,
|
|
39
|
+
"description": "Generate a .mock.ts file per endpoint using @constantant/openapi-resource-mocks. Requires the package to be installed."
|
|
35
40
|
}
|
|
36
41
|
},
|
|
37
42
|
"required": ["specPath", "outputDir"]
|
|
@@ -6,6 +6,7 @@ export interface ApiResourceGeneratorSchema {
|
|
|
6
6
|
tagFilter?: string;
|
|
7
7
|
namingConvention?: 'camel' | 'kebab';
|
|
8
8
|
providedIn?: 'root' | 'none';
|
|
9
|
+
includeMocks?: boolean;
|
|
9
10
|
}
|
|
10
11
|
export declare function apiResourceGenerator(tree: Tree, options: ApiResourceGeneratorSchema): Promise<void>;
|
|
11
12
|
export default apiResourceGenerator;
|
|
@@ -54,6 +54,7 @@ const url_1 = require("url");
|
|
|
54
54
|
const swagger_parser_1 = __importDefault(require("@apidevtools/swagger-parser"));
|
|
55
55
|
const parse_spec_1 = require("./parse-spec");
|
|
56
56
|
const render_token_1 = require("./render-token");
|
|
57
|
+
const render_mock_file_1 = require("./render-mock-file");
|
|
57
58
|
/** Replace $ref values that point to non-YAML/JSON files with {} so
|
|
58
59
|
* swagger-parser doesn't try to load markdown or other binary assets. */
|
|
59
60
|
function stripNonSchemaRefs(obj) {
|
|
@@ -98,6 +99,28 @@ function fetchSpecUrl(url, destPath) {
|
|
|
98
99
|
});
|
|
99
100
|
});
|
|
100
101
|
}
|
|
102
|
+
/** Add a /{lib}/mock path alias to tsconfig.base.json alongside the existing /{lib} alias. */
|
|
103
|
+
function addMockPathAlias(tree, outputDir) {
|
|
104
|
+
const tsconfigPath = 'tsconfig.base.json';
|
|
105
|
+
if (!tree.exists(tsconfigPath))
|
|
106
|
+
return;
|
|
107
|
+
const normalizedDir = outputDir.replace(/\\/g, '/').replace(/\/$/, '');
|
|
108
|
+
const indexTsValue = `${normalizedDir}/index.ts`;
|
|
109
|
+
const indexMockTsValue = `${normalizedDir}/index.mock.ts`;
|
|
110
|
+
(0, devkit_1.updateJson)(tree, tsconfigPath, (json) => {
|
|
111
|
+
const paths = json?.compilerOptions?.paths;
|
|
112
|
+
if (!paths)
|
|
113
|
+
return json;
|
|
114
|
+
const existingKey = Object.keys(paths).find((key) => paths[key].some((v) => v.replace(/\\/g, '/') === indexTsValue));
|
|
115
|
+
if (!existingKey)
|
|
116
|
+
return json;
|
|
117
|
+
const mockKey = `${existingKey}/mock`;
|
|
118
|
+
if (!paths[mockKey]) {
|
|
119
|
+
paths[mockKey] = [indexMockTsValue];
|
|
120
|
+
}
|
|
121
|
+
return json;
|
|
122
|
+
});
|
|
123
|
+
}
|
|
101
124
|
/** Recursively collect all file paths under a tree directory. */
|
|
102
125
|
function collectTreeFiles(tree, dir) {
|
|
103
126
|
const result = [];
|
|
@@ -115,16 +138,27 @@ function collectTreeFiles(tree, dir) {
|
|
|
115
138
|
return result;
|
|
116
139
|
}
|
|
117
140
|
async function apiResourceGenerator(tree, options) {
|
|
118
|
-
const { specPath, outputDir, baseUrlToken = 'API_BASE_URL', tagFilter, namingConvention = 'kebab', providedIn = 'none', } = options;
|
|
141
|
+
const { specPath, outputDir, baseUrlToken = 'API_BASE_URL', tagFilter, namingConvention = 'kebab', providedIn = 'none', includeMocks = false, } = options;
|
|
142
|
+
if (includeMocks) {
|
|
143
|
+
try {
|
|
144
|
+
require.resolve('@constantant/openapi-resource-mocks');
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
throw new Error('includeMocks requires @constantant/openapi-resource-mocks to be installed.\n' +
|
|
148
|
+
'Run: npm install -D @constantant/openapi-resource-mocks');
|
|
149
|
+
}
|
|
150
|
+
}
|
|
119
151
|
const allowedTags = tagFilter
|
|
120
152
|
? tagFilter
|
|
121
153
|
.split(',')
|
|
122
154
|
.map((t) => t.trim())
|
|
123
155
|
.filter(Boolean)
|
|
124
156
|
: null;
|
|
125
|
-
// Snapshot which token/security files already exist so we can delete stale
|
|
157
|
+
// Snapshot which token/security/mock files already exist so we can delete stale
|
|
126
158
|
// ones that this run no longer produces.
|
|
127
|
-
const preExistingFiles = new Set(collectTreeFiles(tree, outputDir).filter((f) => f.endsWith('.token.ts') ||
|
|
159
|
+
const preExistingFiles = new Set(collectTreeFiles(tree, outputDir).filter((f) => f.endsWith('.token.ts') ||
|
|
160
|
+
f.endsWith('.security-token.ts') ||
|
|
161
|
+
f.endsWith('.mock.ts')));
|
|
128
162
|
const isUrl = specPath.startsWith('http://') || specPath.startsWith('https://');
|
|
129
163
|
// For URL specs, download to a temp file alongside the workspace root so
|
|
130
164
|
// relative file $refs in the spec (rare for remote specs) still resolve.
|
|
@@ -224,17 +258,36 @@ async function apiResourceGenerator(tree, options) {
|
|
|
224
258
|
const filePath = (0, devkit_1.joinPathFragments)(tagDir, `${ep.fileName}.token.ts`);
|
|
225
259
|
tree.write(filePath, (0, render_token_1.renderTokenFile)(ep, baseUrlToken, providedIn, schemesByName));
|
|
226
260
|
writtenFiles.add(filePath);
|
|
261
|
+
if (includeMocks) {
|
|
262
|
+
const mockPath = (0, devkit_1.joinPathFragments)(tagDir, `${ep.fileName}.mock.ts`);
|
|
263
|
+
tree.write(mockPath, (0, render_mock_file_1.renderMockFile)(ep));
|
|
264
|
+
writtenFiles.add(mockPath);
|
|
265
|
+
}
|
|
227
266
|
}
|
|
228
267
|
const tagBarrel = tagEndpoints
|
|
229
268
|
.map((ep) => `export * from './${ep.fileName}.token';`)
|
|
230
269
|
.join('\n') + '\n';
|
|
231
270
|
tree.write((0, devkit_1.joinPathFragments)(tagDir, 'index.ts'), tagBarrel);
|
|
271
|
+
if (includeMocks) {
|
|
272
|
+
const mockBarrelPath = (0, devkit_1.joinPathFragments)(tagDir, 'index.mock.ts');
|
|
273
|
+
const mockBarrel = tagEndpoints
|
|
274
|
+
.map((ep) => `export * from './${ep.fileName}.mock';`)
|
|
275
|
+
.join('\n') + '\n';
|
|
276
|
+
tree.write(mockBarrelPath, mockBarrel);
|
|
277
|
+
writtenFiles.add(mockBarrelPath);
|
|
278
|
+
}
|
|
232
279
|
}
|
|
233
280
|
// 8. Root barrel index
|
|
234
281
|
const rootBarrel = `export * from './api-base-url.token';\n` +
|
|
235
282
|
securitySchemes.map((s) => `export * from './${s.fileName}';\n`).join('') +
|
|
236
283
|
[...byTag.keys()].map((tag) => `export * from './${tag}';\n`).join('');
|
|
237
284
|
tree.write((0, devkit_1.joinPathFragments)(outputDir, 'index.ts'), rootBarrel);
|
|
285
|
+
if (includeMocks) {
|
|
286
|
+
const rootMockBarrel = [...byTag.keys()].map((tag) => `export * from './${tag}/index.mock';\n`).join('');
|
|
287
|
+
tree.write((0, devkit_1.joinPathFragments)(outputDir, 'index.mock.ts'), rootMockBarrel);
|
|
288
|
+
writtenFiles.add((0, devkit_1.joinPathFragments)(outputDir, 'index.mock.ts'));
|
|
289
|
+
addMockPathAlias(tree, outputDir);
|
|
290
|
+
}
|
|
238
291
|
// 9. Delete stale token/security files from previous runs that this run
|
|
239
292
|
// no longer produces (e.g. removed endpoints, changed tagFilter).
|
|
240
293
|
for (const stale of preExistingFiles) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../tools/openapi-resource-gen/src/generators/api-resource/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../tools/openapi-resource-gen/src/generators/api-resource/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderMockFile = renderMockFile;
|
|
4
|
+
const render_token_1 = require("./render-token");
|
|
5
|
+
function renderMockFile(ep) {
|
|
6
|
+
const pascal = (0, render_token_1.toPascalCase)(ep.operationId);
|
|
7
|
+
const responseType = ep.hasResponse ? `${pascal}Response` : null;
|
|
8
|
+
const responseImport = responseType
|
|
9
|
+
? `\nimport type { ${responseType} } from './${ep.fileName}.token';`
|
|
10
|
+
: '';
|
|
11
|
+
const behaviorType = responseType
|
|
12
|
+
? `ProviderInitialBehavior<${responseType}>`
|
|
13
|
+
: `ProviderInitialBehavior<unknown>`;
|
|
14
|
+
return `import { FactoryProvider } from '@angular/core';
|
|
15
|
+
import { provideMockResource } from '@constantant/openapi-resource-mocks';
|
|
16
|
+
import type { ProviderInitialBehavior } from '@constantant/openapi-resource-mocks';
|
|
17
|
+
import { ${ep.tokenName} } from './${ep.fileName}.token';${responseImport}
|
|
18
|
+
|
|
19
|
+
export function provide${pascal}Mock(
|
|
20
|
+
initialBehavior?: ${behaviorType},
|
|
21
|
+
): FactoryProvider {
|
|
22
|
+
return provideMockResource(${ep.tokenName}, '${ep.tokenName}', initialBehavior);
|
|
23
|
+
}
|
|
24
|
+
`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=render-mock-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-mock-file.js","sourceRoot":"","sources":["../../../../../../tools/openapi-resource-gen/src/generators/api-resource/render-mock-file.ts"],"names":[],"mappings":";;AAGA,wCAqBC;AAvBD,iDAA8C;AAE9C,SAAgB,cAAc,CAAC,EAAiB;IAC9C,MAAM,MAAM,GAAG,IAAA,2BAAY,EAAC,EAAE,CAAC,WAAW,CAAC,CAAC;IAC5C,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;IACjE,MAAM,cAAc,GAAG,YAAY;QACjC,CAAC,CAAC,mBAAmB,YAAY,cAAc,EAAE,CAAC,QAAQ,UAAU;QACpE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,YAAY,GAAG,YAAY;QAC/B,CAAC,CAAC,2BAA2B,YAAY,GAAG;QAC5C,CAAC,CAAC,kCAAkC,CAAC;IAEvC,OAAO;;;WAGE,EAAE,CAAC,SAAS,cAAc,EAAE,CAAC,QAAQ,WAAW,cAAc;;yBAEhD,MAAM;sBACT,YAAY;;+BAEH,EAAE,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS;;CAE5D,CAAC;AACF,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
import type { EndpointModel, SecuritySchemeModel } from './endpoint-model';
|
|
2
|
+
export declare function toPascalCase(str: string): string;
|
|
2
3
|
export declare function renderSecurityTokenFile(scheme: SecuritySchemeModel, baseUrlToken: string): string;
|
|
3
4
|
export declare function renderTokenFile(ep: EndpointModel, baseUrlToken: string, providedIn?: 'root' | 'none', schemesByName?: Map<string, SecuritySchemeModel>): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-token.js","sourceRoot":"","sources":["../../../../../../tools/openapi-resource-gen/src/generators/api-resource/render-token.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"render-token.js","sourceRoot":"","sources":["../../../../../../tools/openapi-resource-gen/src/generators/api-resource/render-token.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,6 +34,11 @@
|
|
|
34
34
|
"enum": ["root", "none"],
|
|
35
35
|
"default": "none",
|
|
36
36
|
"description": "none: token has no factory; a provide{Name}() helper is exported for explicit scoped provision. root: token self-registers at root (tree-shakeable singleton, no multi-context support)"
|
|
37
|
+
},
|
|
38
|
+
"includeMocks": {
|
|
39
|
+
"type": "boolean",
|
|
40
|
+
"default": false,
|
|
41
|
+
"description": "Generate a .mock.ts file per endpoint (and index.mock.ts barrels) using @constantant/openapi-resource-mocks. Requires the package to be installed."
|
|
37
42
|
}
|
|
38
43
|
},
|
|
39
44
|
"required": ["specPath", "outputDir"]
|