@constantant/openapi-resource-gen 1.4.0 → 1.6.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 +43 -0
- package/README.md +124 -2
- package/package.json +1 -1
- package/src/executors/generate/schema.json +9 -0
- package/src/generators/api-resource/generator.d.ts +3 -0
- package/src/generators/api-resource/generator.js +75 -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 +34 -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 +9 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,46 @@
|
|
|
1
|
+
## 1.6.0 (2026-06-10)
|
|
2
|
+
|
|
3
|
+
### 🚀 Features
|
|
4
|
+
|
|
5
|
+
- **openapi-resource-gen:** phase 2 spec-aware mocks — specId + MockResourceMeta in generated files ([1b11b01](https://github.com/constantant/angular-openapi-gen/commit/1b11b01))
|
|
6
|
+
|
|
7
|
+
### 📖 Documentation
|
|
8
|
+
|
|
9
|
+
- align all docs with spec-aware mocks (phases 2-4) ([e7c4374](https://github.com/constantant/angular-openapi-gen/commit/e7c4374))
|
|
10
|
+
|
|
11
|
+
### 🧱 Updated Dependencies
|
|
12
|
+
|
|
13
|
+
- Updated openapi-resource-mocks to 0.3.0
|
|
14
|
+
|
|
15
|
+
### ❤️ Thank You
|
|
16
|
+
|
|
17
|
+
- Claude Sonnet 4.6
|
|
18
|
+
- kk
|
|
19
|
+
|
|
20
|
+
## 1.5.0 (2026-06-09)
|
|
21
|
+
|
|
22
|
+
### 🚀 Features
|
|
23
|
+
|
|
24
|
+
- **openapi-resource-gen:** add includeMocks to executor schema ([7f2052d](https://github.com/constantant/angular-openapi-gen/commit/7f2052d))
|
|
25
|
+
- **openapi-resource-gen:** add includeMocks option to co-generate .mock.ts files ([8ebddd4](https://github.com/constantant/angular-openapi-gen/commit/8ebddd4))
|
|
26
|
+
|
|
27
|
+
### 🩹 Fixes
|
|
28
|
+
|
|
29
|
+
- **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))
|
|
30
|
+
|
|
31
|
+
### 📖 Documentation
|
|
32
|
+
|
|
33
|
+
- **openapi-resource-gen:** document includeMocks option ([99aaf8b](https://github.com/constantant/angular-openapi-gen/commit/99aaf8b))
|
|
34
|
+
|
|
35
|
+
### 🧱 Updated Dependencies
|
|
36
|
+
|
|
37
|
+
- Updated openapi-resource-mocks to 0.2.0
|
|
38
|
+
|
|
39
|
+
### ❤️ Thank You
|
|
40
|
+
|
|
41
|
+
- Claude Sonnet 4.6
|
|
42
|
+
- kk
|
|
43
|
+
|
|
1
44
|
## 1.4.0 (2026-06-08)
|
|
2
45
|
|
|
3
46
|
### 📖 Documentation
|
package/README.md
CHANGED
|
@@ -86,6 +86,8 @@ 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 and a `mocks.manifest.json` — requires [`@constantant/openapi-resource-mocks`](https://www.npmjs.com/package/@constantant/openapi-resource-mocks) |
|
|
90
|
+
| `specId` | no | derived from `baseUrlToken` | Identifier embedded in every generated `MockResourceMeta` and in `mocks.manifest.json`. Defaults to `baseUrlToken` with `_BASE_URL` stripped and lowercased (e.g. `PETSTORE_BASE_URL` → `petstore`). Must match the value used when importing the spec into the DevTools panel. |
|
|
89
91
|
|
|
90
92
|
---
|
|
91
93
|
|
|
@@ -97,15 +99,130 @@ Re-run the same command whenever your spec changes — the generator overwrites
|
|
|
97
99
|
api-base-url.token.ts # InjectionToken<string> for the API root URL
|
|
98
100
|
{scheme}.security-token.ts # one per security scheme (if any)
|
|
99
101
|
index.ts # re-exports all tag barrels + base-url + security tokens
|
|
102
|
+
index.mock.ts # (--includeMocks) re-exports all tag mock barrels
|
|
103
|
+
mocks.manifest.json # (--includeMocks) machine-readable endpoint list + specId for the DevTools panel
|
|
100
104
|
{tag}/
|
|
101
105
|
index.ts # re-exports all token files in this tag folder
|
|
106
|
+
index.mock.ts # (--includeMocks) re-exports all mock files in this tag
|
|
102
107
|
{operation-id}.token.ts # one file per endpoint
|
|
108
|
+
{operation-id}.mock.ts # (--includeMocks) typed mock provider per endpoint
|
|
103
109
|
```
|
|
104
110
|
|
|
105
111
|
Tags map to subfolders; untagged operations go into `default/`.
|
|
106
112
|
|
|
107
113
|
---
|
|
108
114
|
|
|
115
|
+
## Mock providers (`--includeMocks`)
|
|
116
|
+
|
|
117
|
+
Pass `--includeMocks` to co-generate a typed `provide{Operation}Mock()` wrapper
|
|
118
|
+
alongside every `.token.ts` file. This requires
|
|
119
|
+
[`@constantant/openapi-resource-mocks`](https://www.npmjs.com/package/@constantant/openapi-resource-mocks)
|
|
120
|
+
to be installed:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
npm install -D @constantant/openapi-resource-mocks
|
|
124
|
+
|
|
125
|
+
npx nx g @constantant/openapi-resource-gen:api-resource \
|
|
126
|
+
--specPath=specs/petstore.yaml \
|
|
127
|
+
--outputDir=libs/petstore-data-access/src \
|
|
128
|
+
--baseUrlToken=PETSTORE_BASE_URL \
|
|
129
|
+
--includeMocks
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### Generated mock file
|
|
133
|
+
|
|
134
|
+
Each `.mock.ts` file exports a single `provide{Operation}Mock(initialBehavior?)` function.
|
|
135
|
+
`initialBehavior` is fully typed against the operation's response type — no hand-written interfaces:
|
|
136
|
+
|
|
137
|
+
```typescript
|
|
138
|
+
// pet/find-pets-by-status.mock.ts (generated)
|
|
139
|
+
import { FactoryProvider } from '@angular/core';
|
|
140
|
+
import { provideMockResource } from '@constantant/openapi-resource-mocks';
|
|
141
|
+
import type { ProviderInitialBehavior, MockResourceMeta } from '@constantant/openapi-resource-mocks';
|
|
142
|
+
import { FIND_PETS_BY_STATUS } from './find-pets-by-status.token';
|
|
143
|
+
import type { FindPetsByStatusResponse } from './find-pets-by-status.token';
|
|
144
|
+
|
|
145
|
+
const _meta: MockResourceMeta = {
|
|
146
|
+
specId: 'petstore',
|
|
147
|
+
operationId: 'findPetsByStatus',
|
|
148
|
+
path: '/pet/findByStatus',
|
|
149
|
+
method: 'get',
|
|
150
|
+
tag: 'pet',
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
export function provideFindPetsByStatusMock(
|
|
154
|
+
initialBehavior?: ProviderInitialBehavior<FindPetsByStatusResponse>,
|
|
155
|
+
): FactoryProvider {
|
|
156
|
+
return provideMockResource(FIND_PETS_BY_STATUS, 'FIND_PETS_BY_STATUS', initialBehavior, _meta);
|
|
157
|
+
}
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
Each mock file also embeds a `MockResourceMeta` const with `specId`, `operationId`, `path`, `method`, and `tag`. The DevTools panel reads this metadata to pre-populate the Respond tab's schema display — no manual configuration needed.
|
|
161
|
+
|
|
162
|
+
The token name string key is always in sync — renaming an operation in the spec and
|
|
163
|
+
regenerating updates both the token constant and its key automatically.
|
|
164
|
+
|
|
165
|
+
### Usage in app.config.mock.ts
|
|
166
|
+
|
|
167
|
+
```typescript
|
|
168
|
+
// Before — hand-written key strings, no type safety on seed data
|
|
169
|
+
import { provideMockResource } from '@constantant/openapi-resource-mocks';
|
|
170
|
+
import { FIND_PETS_BY_STATUS } from '@myapp/petstore-data-access';
|
|
171
|
+
|
|
172
|
+
provideMockResource(FIND_PETS_BY_STATUS, 'FIND_PETS_BY_STATUS', {
|
|
173
|
+
value: [{ id: 1, name: 'Rex', status: 'available', photoUrls: [] }],
|
|
174
|
+
delay: 500,
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
// After — generated wrapper, fully typed initialBehavior
|
|
178
|
+
import { provideFindPetsByStatusMock } from '@myapp/petstore-data-access';
|
|
179
|
+
|
|
180
|
+
provideFindPetsByStatusMock({
|
|
181
|
+
value: [{ id: 1, name: 'Rex', status: 'available', photoUrls: [] }],
|
|
182
|
+
delay: 500,
|
|
183
|
+
})
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
`initialBehavior` supports:
|
|
187
|
+
|
|
188
|
+
| Shape | Effect |
|
|
189
|
+
|-------|--------|
|
|
190
|
+
| `{ value: T }` | Resolves immediately |
|
|
191
|
+
| `{ value: T, delay: ms }` | Loading for `ms` ms, then resolves |
|
|
192
|
+
| `{ loading: true }` | Stays loading indefinitely |
|
|
193
|
+
| `{ error: unknown }` | Fails immediately |
|
|
194
|
+
| `{ error: unknown, delay: ms }` | Loading for `ms` ms, then fails |
|
|
195
|
+
|
|
196
|
+
### Barrel imports
|
|
197
|
+
|
|
198
|
+
All mock providers for a tag are re-exported from `{tag}/index.mock.ts`; the root
|
|
199
|
+
`index.mock.ts` re-exports all tag barrels. The generator automatically registers a
|
|
200
|
+
`/mock` subpath alias in `tsconfig.base.json` alongside the main path alias, so you
|
|
201
|
+
can import from the mock barrel directly:
|
|
202
|
+
|
|
203
|
+
```typescript
|
|
204
|
+
import {
|
|
205
|
+
provideFindPetsByStatusMock,
|
|
206
|
+
provideAddPetMock,
|
|
207
|
+
} from '@myapp/petstore-data-access/mock';
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
The registered alias looks like:
|
|
211
|
+
|
|
212
|
+
```json
|
|
213
|
+
"@myapp/petstore-data-access/mock": ["libs/petstore-data-access/src/index.mock.ts"]
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
Mock providers are intentionally kept out of the main `index.ts` barrel so they
|
|
217
|
+
are never accidentally bundled into a production build.
|
|
218
|
+
|
|
219
|
+
### Stale cleanup
|
|
220
|
+
|
|
221
|
+
Re-running the generator without `--includeMocks` deletes any `.mock.ts` files from
|
|
222
|
+
the previous run. Removing an endpoint from the spec also removes its `.mock.ts`.
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
109
226
|
## Generated token anatomy
|
|
110
227
|
|
|
111
228
|
### GET with query params
|
|
@@ -373,7 +490,8 @@ your lib's `project.json` using the bundled executor:
|
|
|
373
490
|
"options": {
|
|
374
491
|
"specPath": "https://petstore3.swagger.io/api/v3/openapi.yaml",
|
|
375
492
|
"outputDir": "libs/petstore-data-access/src",
|
|
376
|
-
"baseUrlToken": "PETSTORE_BASE_URL"
|
|
493
|
+
"baseUrlToken": "PETSTORE_BASE_URL",
|
|
494
|
+
"includeMocks": true
|
|
377
495
|
}
|
|
378
496
|
}
|
|
379
497
|
}
|
|
@@ -519,6 +637,10 @@ navigation in and destroyed on navigation out, with no cross-route state leakage
|
|
|
519
637
|
```json
|
|
520
638
|
"@angular-openapi-gen/myapi-data-access": ["libs/myapi-data-access/src/index.ts"]
|
|
521
639
|
```
|
|
640
|
+
If you used `--includeMocks`, the generator adds the `/mock` subpath alias automatically. If you added the main alias manually, add the mock alias too:
|
|
641
|
+
```json
|
|
642
|
+
"@angular-openapi-gen/myapi-data-access/mock": ["libs/myapi-data-access/src/index.mock.ts"]
|
|
643
|
+
```
|
|
522
644
|
|
|
523
645
|
3. Add base URL provider and token providers to `app.config.ts`.
|
|
524
646
|
|
|
@@ -534,7 +656,7 @@ navigation in and destroyed on navigation out, with no cross-route state leakage
|
|
|
534
656
|
| Type generation | `openapi-typescript` programmatic API | Emit `schema.d.ts` — the single source of truth for all request/response types |
|
|
535
657
|
| Spec dereferencing | `@apidevtools/swagger-parser` | Resolve all `$ref` chains for endpoint extraction |
|
|
536
658
|
| Security parsing | `parseSecuritySchemes(api)` | Extract scheme definitions; resolve per-operation overrides |
|
|
537
|
-
| Code generation | `renderTokenFile()` / `renderSecurityTokenFile()` | Direct string assembly for
|
|
659
|
+
| Code generation | `renderTokenFile()` / `renderSecurityTokenFile()` / `renderMockFile()` | Direct string assembly for token and mock files |
|
|
538
660
|
| Formatting | `@nx/devkit` `formatFiles()` | Runs Prettier over all written files |
|
|
539
661
|
|
|
540
662
|
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.6.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,15 @@
|
|
|
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."
|
|
40
|
+
},
|
|
41
|
+
"specId": {
|
|
42
|
+
"type": "string",
|
|
43
|
+
"description": "Identifier for this API spec, embedded in MockResourceMeta and mocks.manifest.json. Defaults to baseUrlToken lowercased with _BASE_URL stripped (e.g. PETSTORE_BASE_URL → petstore)."
|
|
35
44
|
}
|
|
36
45
|
},
|
|
37
46
|
"required": ["specPath", "outputDir"]
|
|
@@ -6,6 +6,9 @@ export interface ApiResourceGeneratorSchema {
|
|
|
6
6
|
tagFilter?: string;
|
|
7
7
|
namingConvention?: 'camel' | 'kebab';
|
|
8
8
|
providedIn?: 'root' | 'none';
|
|
9
|
+
includeMocks?: boolean;
|
|
10
|
+
/** Identifier embedded in MockResourceMeta and mocks.manifest.json. */
|
|
11
|
+
specId?: string;
|
|
9
12
|
}
|
|
10
13
|
export declare function apiResourceGenerator(tree: Tree, options: ApiResourceGeneratorSchema): Promise<void>;
|
|
11
14
|
export default apiResourceGenerator;
|
|
@@ -54,6 +54,14 @@ 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");
|
|
58
|
+
/** Derive a specId from the baseUrlToken: PETSTORE_BASE_URL → petstore */
|
|
59
|
+
function deriveSpecId(baseUrlToken) {
|
|
60
|
+
return baseUrlToken
|
|
61
|
+
.replace(/_BASE_URL$/i, '')
|
|
62
|
+
.toLowerCase()
|
|
63
|
+
.replace(/_/g, '-');
|
|
64
|
+
}
|
|
57
65
|
/** Replace $ref values that point to non-YAML/JSON files with {} so
|
|
58
66
|
* swagger-parser doesn't try to load markdown or other binary assets. */
|
|
59
67
|
function stripNonSchemaRefs(obj) {
|
|
@@ -98,6 +106,28 @@ function fetchSpecUrl(url, destPath) {
|
|
|
98
106
|
});
|
|
99
107
|
});
|
|
100
108
|
}
|
|
109
|
+
/** Add a /{lib}/mock path alias to tsconfig.base.json alongside the existing /{lib} alias. */
|
|
110
|
+
function addMockPathAlias(tree, outputDir) {
|
|
111
|
+
const tsconfigPath = 'tsconfig.base.json';
|
|
112
|
+
if (!tree.exists(tsconfigPath))
|
|
113
|
+
return;
|
|
114
|
+
const normalizedDir = outputDir.replace(/\\/g, '/').replace(/\/$/, '');
|
|
115
|
+
const indexTsValue = `${normalizedDir}/index.ts`;
|
|
116
|
+
const indexMockTsValue = `${normalizedDir}/index.mock.ts`;
|
|
117
|
+
(0, devkit_1.updateJson)(tree, tsconfigPath, (json) => {
|
|
118
|
+
const paths = json?.compilerOptions?.paths;
|
|
119
|
+
if (!paths)
|
|
120
|
+
return json;
|
|
121
|
+
const existingKey = Object.keys(paths).find((key) => paths[key].some((v) => v.replace(/\\/g, '/') === indexTsValue));
|
|
122
|
+
if (!existingKey)
|
|
123
|
+
return json;
|
|
124
|
+
const mockKey = `${existingKey}/mock`;
|
|
125
|
+
if (!paths[mockKey]) {
|
|
126
|
+
paths[mockKey] = [indexMockTsValue];
|
|
127
|
+
}
|
|
128
|
+
return json;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
101
131
|
/** Recursively collect all file paths under a tree directory. */
|
|
102
132
|
function collectTreeFiles(tree, dir) {
|
|
103
133
|
const result = [];
|
|
@@ -115,16 +145,29 @@ function collectTreeFiles(tree, dir) {
|
|
|
115
145
|
return result;
|
|
116
146
|
}
|
|
117
147
|
async function apiResourceGenerator(tree, options) {
|
|
118
|
-
const { specPath, outputDir, baseUrlToken = 'API_BASE_URL', tagFilter, namingConvention = 'kebab', providedIn = 'none', } = options;
|
|
148
|
+
const { specPath, outputDir, baseUrlToken = 'API_BASE_URL', tagFilter, namingConvention = 'kebab', providedIn = 'none', includeMocks = false, } = options;
|
|
149
|
+
const specId = options.specId ?? deriveSpecId(baseUrlToken);
|
|
150
|
+
if (includeMocks) {
|
|
151
|
+
try {
|
|
152
|
+
require.resolve('@constantant/openapi-resource-mocks');
|
|
153
|
+
}
|
|
154
|
+
catch {
|
|
155
|
+
throw new Error('includeMocks requires @constantant/openapi-resource-mocks to be installed.\n' +
|
|
156
|
+
'Run: npm install -D @constantant/openapi-resource-mocks');
|
|
157
|
+
}
|
|
158
|
+
}
|
|
119
159
|
const allowedTags = tagFilter
|
|
120
160
|
? tagFilter
|
|
121
161
|
.split(',')
|
|
122
162
|
.map((t) => t.trim())
|
|
123
163
|
.filter(Boolean)
|
|
124
164
|
: null;
|
|
125
|
-
// Snapshot which token/security files already exist so we can delete stale
|
|
165
|
+
// Snapshot which token/security/mock files already exist so we can delete stale
|
|
126
166
|
// ones that this run no longer produces.
|
|
127
|
-
const preExistingFiles = new Set(collectTreeFiles(tree, outputDir).filter((f) => f.endsWith('.token.ts') ||
|
|
167
|
+
const preExistingFiles = new Set(collectTreeFiles(tree, outputDir).filter((f) => f.endsWith('.token.ts') ||
|
|
168
|
+
f.endsWith('.security-token.ts') ||
|
|
169
|
+
f.endsWith('.mock.ts') ||
|
|
170
|
+
f.endsWith('mocks.manifest.json')));
|
|
128
171
|
const isUrl = specPath.startsWith('http://') || specPath.startsWith('https://');
|
|
129
172
|
// For URL specs, download to a temp file alongside the workspace root so
|
|
130
173
|
// relative file $refs in the spec (rare for remote specs) still resolve.
|
|
@@ -224,17 +267,46 @@ async function apiResourceGenerator(tree, options) {
|
|
|
224
267
|
const filePath = (0, devkit_1.joinPathFragments)(tagDir, `${ep.fileName}.token.ts`);
|
|
225
268
|
tree.write(filePath, (0, render_token_1.renderTokenFile)(ep, baseUrlToken, providedIn, schemesByName));
|
|
226
269
|
writtenFiles.add(filePath);
|
|
270
|
+
if (includeMocks) {
|
|
271
|
+
const mockPath = (0, devkit_1.joinPathFragments)(tagDir, `${ep.fileName}.mock.ts`);
|
|
272
|
+
tree.write(mockPath, (0, render_mock_file_1.renderMockFile)(ep, specId));
|
|
273
|
+
writtenFiles.add(mockPath);
|
|
274
|
+
}
|
|
227
275
|
}
|
|
228
276
|
const tagBarrel = tagEndpoints
|
|
229
277
|
.map((ep) => `export * from './${ep.fileName}.token';`)
|
|
230
278
|
.join('\n') + '\n';
|
|
231
279
|
tree.write((0, devkit_1.joinPathFragments)(tagDir, 'index.ts'), tagBarrel);
|
|
280
|
+
if (includeMocks) {
|
|
281
|
+
const mockBarrelPath = (0, devkit_1.joinPathFragments)(tagDir, 'index.mock.ts');
|
|
282
|
+
const mockBarrel = tagEndpoints
|
|
283
|
+
.map((ep) => `export * from './${ep.fileName}.mock';`)
|
|
284
|
+
.join('\n') + '\n';
|
|
285
|
+
tree.write(mockBarrelPath, mockBarrel);
|
|
286
|
+
writtenFiles.add(mockBarrelPath);
|
|
287
|
+
}
|
|
232
288
|
}
|
|
233
289
|
// 8. Root barrel index
|
|
234
290
|
const rootBarrel = `export * from './api-base-url.token';\n` +
|
|
235
291
|
securitySchemes.map((s) => `export * from './${s.fileName}';\n`).join('') +
|
|
236
292
|
[...byTag.keys()].map((tag) => `export * from './${tag}';\n`).join('');
|
|
237
293
|
tree.write((0, devkit_1.joinPathFragments)(outputDir, 'index.ts'), rootBarrel);
|
|
294
|
+
if (includeMocks) {
|
|
295
|
+
const rootMockBarrel = [...byTag.keys()].map((tag) => `export * from './${tag}/index.mock';\n`).join('');
|
|
296
|
+
tree.write((0, devkit_1.joinPathFragments)(outputDir, 'index.mock.ts'), rootMockBarrel);
|
|
297
|
+
writtenFiles.add((0, devkit_1.joinPathFragments)(outputDir, 'index.mock.ts'));
|
|
298
|
+
addMockPathAlias(tree, outputDir);
|
|
299
|
+
const manifestMocks = endpoints.map((ep) => ({
|
|
300
|
+
tokenName: ep.tokenName,
|
|
301
|
+
operationId: ep.operationId,
|
|
302
|
+
path: ep.apiPath,
|
|
303
|
+
method: ep.method,
|
|
304
|
+
...(ep.tag !== 'default' ? { tag: ep.tag } : {}),
|
|
305
|
+
}));
|
|
306
|
+
const manifestPath = (0, devkit_1.joinPathFragments)(outputDir, 'mocks.manifest.json');
|
|
307
|
+
tree.write(manifestPath, JSON.stringify({ specId, mocks: manifestMocks }, null, 2) + '\n');
|
|
308
|
+
writtenFiles.add(manifestPath);
|
|
309
|
+
}
|
|
238
310
|
// 9. Delete stale token/security files from previous runs that this run
|
|
239
311
|
// no longer produces (e.g. removed endpoints, changed tagFilter).
|
|
240
312
|
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,34 @@
|
|
|
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, specId) {
|
|
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
|
+
const tagLine = ep.tag !== 'default' ? `\n tag: '${ep.tag}',` : '';
|
|
15
|
+
return `import { FactoryProvider } from '@angular/core';
|
|
16
|
+
import { provideMockResource } from '@constantant/openapi-resource-mocks';
|
|
17
|
+
import type { ProviderInitialBehavior, MockResourceMeta } from '@constantant/openapi-resource-mocks';
|
|
18
|
+
import { ${ep.tokenName} } from './${ep.fileName}.token';${responseImport}
|
|
19
|
+
|
|
20
|
+
const _meta: MockResourceMeta = {
|
|
21
|
+
specId: '${specId}',
|
|
22
|
+
operationId: '${ep.operationId}',
|
|
23
|
+
path: '${ep.apiPath}',
|
|
24
|
+
method: '${ep.method}',${tagLine}
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
export function provide${pascal}Mock(
|
|
28
|
+
initialBehavior?: ${behaviorType},
|
|
29
|
+
): FactoryProvider {
|
|
30
|
+
return provideMockResource(${ep.tokenName}, '${ep.tokenName}', initialBehavior, _meta);
|
|
31
|
+
}
|
|
32
|
+
`;
|
|
33
|
+
}
|
|
34
|
+
//# 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,wCA6BC;AA/BD,iDAA8C;AAE9C,SAAgB,cAAc,CAAC,EAAiB,EAAE,MAAc;IAC9D,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;IACvC,MAAM,OAAO,GAAG,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,OAAO;;;WAGE,EAAE,CAAC,SAAS,cAAc,EAAE,CAAC,QAAQ,WAAW,cAAc;;;aAG5D,MAAM;kBACD,EAAE,CAAC,WAAW;WACrB,EAAE,CAAC,OAAO;aACR,EAAE,CAAC,MAAM,KAAK,OAAO;;;yBAGT,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,15 @@
|
|
|
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."
|
|
42
|
+
},
|
|
43
|
+
"specId": {
|
|
44
|
+
"type": "string",
|
|
45
|
+
"description": "Identifier for this API spec, embedded in MockResourceMeta and mocks.manifest.json. Defaults to baseUrlToken lowercased with _BASE_URL stripped (e.g. PETSTORE_BASE_URL → petstore)."
|
|
37
46
|
}
|
|
38
47
|
},
|
|
39
48
|
"required": ["specPath", "outputDir"]
|