@redocly/client-generator 0.0.0-snapshot.1787213166 → 0.0.0-snapshot.1787659732
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 +30 -22
- package/lib/emitters/auth.d.ts +14 -0
- package/lib/emitters/auth.d.ts.map +1 -0
- package/lib/emitters/auth.js +30 -0
- package/lib/emitters/auth.js.map +1 -0
- package/lib/emitters/client-assembly.d.ts.map +1 -1
- package/lib/emitters/client-assembly.js +193 -52
- package/lib/emitters/client-assembly.js.map +1 -1
- package/lib/emitters/descriptor.d.ts +13 -5
- package/lib/emitters/descriptor.d.ts.map +1 -1
- package/lib/emitters/descriptor.js +124 -41
- package/lib/emitters/descriptor.js.map +1 -1
- package/lib/emitters/emit-options.d.ts +1 -15
- package/lib/emitters/emit-options.d.ts.map +1 -1
- package/lib/emitters/emit-options.js +1 -1
- package/lib/emitters/emit-options.js.map +1 -1
- package/lib/emitters/faker.d.ts +3 -3
- package/lib/emitters/faker.d.ts.map +1 -1
- package/lib/emitters/faker.js +107 -66
- package/lib/emitters/faker.js.map +1 -1
- package/lib/emitters/identifier.d.ts.map +1 -1
- package/lib/emitters/identifier.js +0 -10
- package/lib/emitters/identifier.js.map +1 -1
- package/lib/emitters/inline-runtime.d.ts +0 -2
- package/lib/emitters/inline-runtime.d.ts.map +1 -1
- package/lib/emitters/inline-runtime.js +45 -14
- package/lib/emitters/inline-runtime.js.map +1 -1
- package/lib/emitters/jsdoc.d.ts +0 -2
- package/lib/emitters/jsdoc.d.ts.map +1 -1
- package/lib/emitters/jsdoc.js +1 -4
- package/lib/emitters/jsdoc.js.map +1 -1
- package/lib/emitters/mock.d.ts.map +1 -1
- package/lib/emitters/mock.js +123 -88
- package/lib/emitters/mock.js.map +1 -1
- package/lib/emitters/operation-aliases.d.ts +27 -0
- package/lib/emitters/operation-aliases.d.ts.map +1 -0
- package/lib/emitters/operation-aliases.js +150 -0
- package/lib/emitters/operation-aliases.js.map +1 -0
- package/lib/emitters/operation-signature.d.ts +9 -8
- package/lib/emitters/operation-signature.d.ts.map +1 -1
- package/lib/emitters/operation-signature.js +19 -18
- package/lib/emitters/operation-signature.js.map +1 -1
- package/lib/emitters/operation-types.d.ts +24 -1
- package/lib/emitters/operation-types.d.ts.map +1 -1
- package/lib/emitters/operation-types.js +107 -1
- package/lib/emitters/operation-types.js.map +1 -1
- package/lib/emitters/operations.d.ts +10 -2
- package/lib/emitters/operations.d.ts.map +1 -1
- package/lib/emitters/operations.js +34 -1
- package/lib/emitters/operations.js.map +1 -1
- package/lib/emitters/pagination.d.ts +13 -6
- package/lib/emitters/pagination.d.ts.map +1 -1
- package/lib/emitters/pagination.js +49 -11
- package/lib/emitters/pagination.js.map +1 -1
- package/lib/emitters/reserved-names.d.ts +1 -4
- package/lib/emitters/reserved-names.d.ts.map +1 -1
- package/lib/emitters/reserved-names.js +27 -16
- package/lib/emitters/reserved-names.js.map +1 -1
- package/lib/emitters/response-headers.d.ts +6 -5
- package/lib/emitters/response-headers.d.ts.map +1 -1
- package/lib/emitters/response-headers.js +63 -13
- package/lib/emitters/response-headers.js.map +1 -1
- package/lib/emitters/runtime-sources.d.ts +3 -23
- package/lib/emitters/runtime-sources.d.ts.map +1 -1
- package/lib/emitters/runtime-sources.js +3 -139
- package/lib/emitters/runtime-sources.js.map +1 -1
- package/lib/emitters/setup-bake.d.ts.map +1 -1
- package/lib/emitters/setup-bake.js +1 -10
- package/lib/emitters/setup-bake.js.map +1 -1
- package/lib/emitters/sse.d.ts +5 -3
- package/lib/emitters/sse.d.ts.map +1 -1
- package/lib/emitters/sse.js +11 -1
- package/lib/emitters/sse.js.map +1 -1
- package/lib/emitters/swr.d.ts +2 -0
- package/lib/emitters/swr.d.ts.map +1 -1
- package/lib/emitters/swr.js +65 -34
- package/lib/emitters/swr.js.map +1 -1
- package/lib/emitters/tanstack-query.d.ts +0 -2
- package/lib/emitters/tanstack-query.d.ts.map +1 -1
- package/lib/emitters/tanstack-query.js +16 -28
- package/lib/emitters/tanstack-query.js.map +1 -1
- package/lib/emitters/transformers.d.ts.map +1 -1
- package/lib/emitters/transformers.js +162 -123
- package/lib/emitters/transformers.js.map +1 -1
- package/lib/emitters/ts.d.ts +42 -0
- package/lib/emitters/ts.d.ts.map +1 -0
- package/lib/emitters/ts.js +116 -0
- package/lib/emitters/ts.js.map +1 -0
- package/lib/emitters/type-guards.d.ts +19 -2
- package/lib/emitters/type-guards.d.ts.map +1 -1
- package/lib/emitters/type-guards.js +52 -18
- package/lib/emitters/type-guards.js.map +1 -1
- package/lib/emitters/types.d.ts +14 -1
- package/lib/emitters/types.d.ts.map +1 -1
- package/lib/emitters/types.js +124 -4
- package/lib/emitters/types.js.map +1 -1
- package/lib/emitters/wrapper-support.d.ts +23 -10
- package/lib/emitters/wrapper-support.d.ts.map +1 -1
- package/lib/emitters/wrapper-support.js +64 -21
- package/lib/emitters/wrapper-support.js.map +1 -1
- package/lib/emitters/zod.d.ts +3 -2
- package/lib/emitters/zod.d.ts.map +1 -1
- package/lib/emitters/zod.js +148 -115
- package/lib/emitters/zod.js.map +1 -1
- package/lib/generate.d.ts +4 -5
- package/lib/generate.d.ts.map +1 -1
- package/lib/generate.js +103 -22
- package/lib/generate.js.map +1 -1
- package/lib/generators/index.d.ts +2 -2
- package/lib/generators/index.d.ts.map +1 -1
- package/lib/generators/index.js +53 -31
- package/lib/generators/index.js.map +1 -1
- package/lib/generators/{mock/index.d.ts → mock.d.ts} +2 -2
- package/lib/generators/mock.d.ts.map +1 -0
- package/lib/generators/{mock/index.js → mock.js} +4 -4
- package/lib/generators/mock.js.map +1 -0
- package/lib/generators/resolve.d.ts.map +1 -1
- package/lib/generators/resolve.js +11 -73
- package/lib/generators/resolve.js.map +1 -1
- package/lib/generators/sdk.d.ts +12 -0
- package/lib/generators/sdk.d.ts.map +1 -0
- package/lib/generators/sdk.js +26 -0
- package/lib/generators/sdk.js.map +1 -0
- package/lib/generators/{swr/index.d.ts → swr.d.ts} +3 -3
- package/lib/generators/swr.d.ts.map +1 -0
- package/lib/generators/{swr/index.js → swr.js} +6 -5
- package/lib/generators/swr.js.map +1 -0
- package/lib/generators/{tanstack-query/index.d.ts → tanstack-query.d.ts} +3 -3
- package/lib/generators/tanstack-query.d.ts.map +1 -0
- package/lib/generators/{tanstack-query/index.js → tanstack-query.js} +5 -6
- package/lib/generators/tanstack-query.js.map +1 -0
- package/lib/generators/{transformers/index.d.ts → transformers.d.ts} +2 -2
- package/lib/generators/transformers.d.ts.map +1 -0
- package/lib/generators/{transformers/index.js → transformers.js} +4 -4
- package/lib/generators/transformers.js.map +1 -0
- package/lib/generators/types.d.ts +4 -82
- package/lib/generators/types.d.ts.map +1 -1
- package/lib/generators/{zod/index.d.ts → zod.d.ts} +2 -2
- package/lib/generators/zod.d.ts.map +1 -0
- package/lib/generators/{zod/index.js → zod.js} +4 -4
- package/lib/generators/zod.js.map +1 -0
- package/lib/index.d.ts +0 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -7
- package/lib/index.js.map +1 -1
- package/lib/intermediate-representation/build.d.ts.map +1 -1
- package/lib/intermediate-representation/build.js +4 -32
- package/lib/intermediate-representation/build.js.map +1 -1
- package/lib/intermediate-representation/model.d.ts +1 -13
- package/lib/intermediate-representation/model.d.ts.map +1 -1
- package/lib/intermediate-representation/model.js.map +1 -1
- package/lib/intermediate-representation/sanitize-identifiers.d.ts +10 -1
- package/lib/intermediate-representation/sanitize-identifiers.d.ts.map +1 -1
- package/lib/intermediate-representation/sanitize-identifiers.js +35 -35
- package/lib/intermediate-representation/sanitize-identifiers.js.map +1 -1
- package/lib/plugin.d.ts +0 -1
- package/lib/plugin.d.ts.map +1 -1
- package/lib/plugin.js +7 -8
- package/lib/plugin.js.map +1 -1
- package/lib/runtime/create-client.d.ts +2 -7
- package/lib/runtime/create-client.d.ts.map +1 -1
- package/lib/runtime/create-client.js +30 -84
- package/lib/runtime/create-client.js.map +1 -1
- package/lib/runtime/paginate.d.ts +2 -2
- package/lib/runtime/paginate.d.ts.map +1 -1
- package/lib/runtime/paginate.js +12 -12
- package/lib/runtime/paginate.js.map +1 -1
- package/lib/runtime/types.d.ts +0 -12
- package/lib/runtime/types.d.ts.map +1 -1
- package/lib/types.d.ts +3 -33
- package/lib/types.d.ts.map +1 -1
- package/package.json +4 -10
- package/eject-assets/AGENTS.md +0 -131
- package/eject-assets/generators/cli.mjs +0 -796
- package/eject-assets/generators/go.mjs +0 -866
- package/eject-assets/generators/mock.mjs +0 -689
- package/eject-assets/generators/php.mjs +0 -840
- package/eject-assets/generators/python.mjs +0 -823
- package/eject-assets/generators/swr.mjs +0 -193
- package/eject-assets/generators/tanstack-query.mjs +0 -626
- package/eject-assets/generators/transformers.mjs +0 -403
- package/eject-assets/generators/typescript.mjs +0 -1821
- package/eject-assets/generators/zod.mjs +0 -520
- package/eject-assets/skills/cli-generator/SKILL.md +0 -112
- package/eject-assets/skills/client-generators/SKILL.md +0 -136
- package/eject-assets/skills/go-generator/SKILL.md +0 -94
- package/eject-assets/skills/mock-generator/SKILL.md +0 -45
- package/eject-assets/skills/php-generator/SKILL.md +0 -110
- package/eject-assets/skills/python-generator/SKILL.md +0 -108
- package/eject-assets/skills/swr-generator/SKILL.md +0 -44
- package/eject-assets/skills/tanstack-query-generator/SKILL.md +0 -48
- package/eject-assets/skills/transformers-generator/SKILL.md +0 -43
- package/eject-assets/skills/typescript-generator/SKILL.md +0 -80
- package/eject-assets/skills/zod-generator/SKILL.md +0 -49
- package/lib/authoring/index.d.ts +0 -10
- package/lib/authoring/index.d.ts.map +0 -1
- package/lib/authoring/index.js +0 -34
- package/lib/authoring/index.js.map +0 -1
- package/lib/authoring/naming.d.ts +0 -34
- package/lib/authoring/naming.d.ts.map +0 -1
- package/lib/authoring/naming.js +0 -104
- package/lib/authoring/naming.js.map +0 -1
- package/lib/authoring/options.d.ts +0 -9
- package/lib/authoring/options.d.ts.map +0 -1
- package/lib/authoring/options.js +0 -5
- package/lib/authoring/options.js.map +0 -1
- package/lib/authoring/pagination.d.ts +0 -19
- package/lib/authoring/pagination.d.ts.map +0 -1
- package/lib/authoring/pagination.js +0 -45
- package/lib/authoring/pagination.js.map +0 -1
- package/lib/authoring/printer.d.ts +0 -16
- package/lib/authoring/printer.d.ts.map +0 -1
- package/lib/authoring/printer.js +0 -36
- package/lib/authoring/printer.js.map +0 -1
- package/lib/authoring/reference-page.d.ts +0 -29
- package/lib/authoring/reference-page.d.ts.map +0 -1
- package/lib/authoring/reference-page.js +0 -157
- package/lib/authoring/reference-page.js.map +0 -1
- package/lib/authoring/schema.d.ts +0 -49
- package/lib/authoring/schema.d.ts.map +0 -1
- package/lib/authoring/schema.js +0 -185
- package/lib/authoring/schema.js.map +0 -1
- package/lib/emitters/cli-docs.d.ts +0 -19
- package/lib/emitters/cli-docs.d.ts.map +0 -1
- package/lib/emitters/cli-docs.js +0 -188
- package/lib/emitters/cli-docs.js.map +0 -1
- package/lib/emitters/cli.d.ts +0 -40
- package/lib/emitters/cli.d.ts.map +0 -1
- package/lib/emitters/cli.js +0 -285
- package/lib/emitters/cli.js.map +0 -1
- package/lib/emitters/go-runtime-sources.d.ts +0 -2
- package/lib/emitters/go-runtime-sources.d.ts.map +0 -1
- package/lib/emitters/go-runtime-sources.js +0 -3
- package/lib/emitters/go-runtime-sources.js.map +0 -1
- package/lib/emitters/mock-value.d.ts +0 -33
- package/lib/emitters/mock-value.d.ts.map +0 -1
- package/lib/emitters/mock-value.js +0 -47
- package/lib/emitters/mock-value.js.map +0 -1
- package/lib/emitters/php-runtime-sources.d.ts +0 -2
- package/lib/emitters/php-runtime-sources.d.ts.map +0 -1
- package/lib/emitters/php-runtime-sources.js +0 -3
- package/lib/emitters/php-runtime-sources.js.map +0 -1
- package/lib/emitters/python-runtime-sources.d.ts +0 -12
- package/lib/emitters/python-runtime-sources.d.ts.map +0 -1
- package/lib/emitters/python-runtime-sources.js +0 -12
- package/lib/emitters/python-runtime-sources.js.map +0 -1
- package/lib/emitters/render-client.d.ts +0 -44
- package/lib/emitters/render-client.d.ts.map +0 -1
- package/lib/emitters/render-client.js +0 -388
- package/lib/emitters/render-client.js.map +0 -1
- package/lib/emitters/ts-literal.d.ts +0 -5
- package/lib/emitters/ts-literal.d.ts.map +0 -1
- package/lib/emitters/ts-literal.js +0 -35
- package/lib/emitters/ts-literal.js.map +0 -1
- package/lib/emitters/ts-type.d.ts +0 -9
- package/lib/emitters/ts-type.d.ts.map +0 -1
- package/lib/emitters/ts-type.js +0 -133
- package/lib/emitters/ts-type.js.map +0 -1
- package/lib/generators/cli/index.d.ts +0 -19
- package/lib/generators/cli/index.d.ts.map +0 -1
- package/lib/generators/cli/index.js +0 -59
- package/lib/generators/cli/index.js.map +0 -1
- package/lib/generators/compatibility.d.ts +0 -10
- package/lib/generators/compatibility.d.ts.map +0 -1
- package/lib/generators/compatibility.js +0 -45
- package/lib/generators/compatibility.js.map +0 -1
- package/lib/generators/go/index.d.ts +0 -18
- package/lib/generators/go/index.d.ts.map +0 -1
- package/lib/generators/go/index.js +0 -848
- package/lib/generators/go/index.js.map +0 -1
- package/lib/generators/meta.d.ts +0 -14
- package/lib/generators/meta.d.ts.map +0 -1
- package/lib/generators/meta.js +0 -161
- package/lib/generators/meta.js.map +0 -1
- package/lib/generators/mock/index.d.ts.map +0 -1
- package/lib/generators/mock/index.js.map +0 -1
- package/lib/generators/options.d.ts +0 -7
- package/lib/generators/options.d.ts.map +0 -1
- package/lib/generators/options.js +0 -74
- package/lib/generators/options.js.map +0 -1
- package/lib/generators/php/index.d.ts +0 -18
- package/lib/generators/php/index.d.ts.map +0 -1
- package/lib/generators/php/index.js +0 -822
- package/lib/generators/php/index.js.map +0 -1
- package/lib/generators/python/index.d.ts +0 -21
- package/lib/generators/python/index.d.ts.map +0 -1
- package/lib/generators/python/index.js +0 -806
- package/lib/generators/python/index.js.map +0 -1
- package/lib/generators/swr/index.d.ts.map +0 -1
- package/lib/generators/swr/index.js.map +0 -1
- package/lib/generators/tanstack-query/index.d.ts.map +0 -1
- package/lib/generators/tanstack-query/index.js.map +0 -1
- package/lib/generators/transformers/index.d.ts.map +0 -1
- package/lib/generators/transformers/index.js.map +0 -1
- package/lib/generators/typescript/index.d.ts +0 -21
- package/lib/generators/typescript/index.d.ts.map +0 -1
- package/lib/generators/typescript/index.js +0 -75
- package/lib/generators/typescript/index.js.map +0 -1
- package/lib/generators/zod/index.d.ts.map +0 -1
- package/lib/generators/zod/index.js.map +0 -1
- package/lib/pipeline.d.ts +0 -20
- package/lib/pipeline.d.ts.map +0 -1
- package/lib/pipeline.js +0 -228
- package/lib/pipeline.js.map +0 -1
- package/lib/runtime/cli.d.ts +0 -156
- package/lib/runtime/cli.d.ts.map +0 -1
- package/lib/runtime/cli.js +0 -598
- package/lib/runtime/cli.js.map +0 -1
- package/lib/runtime-sources.d.ts +0 -4
- package/lib/runtime-sources.d.ts.map +0 -1
- package/lib/runtime-sources.js +0 -9
- package/lib/runtime-sources.js.map +0 -1
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ import { generateClient } from '@redocly/client-generator';
|
|
|
27
27
|
const result = await generateClient({
|
|
28
28
|
api: './openapi.yaml', // file path or URL; OpenAPI 3.0/3.1/3.2 or Swagger 2.0
|
|
29
29
|
output: './src/api/client.ts',
|
|
30
|
-
generators: ['
|
|
30
|
+
generators: ['sdk', 'zod'],
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
console.log(`Wrote ${result.files.length} file(s), ${result.bytes} bytes.`);
|
|
@@ -55,32 +55,43 @@ With `runtime: 'package'` the generated client also imports its whole engine fro
|
|
|
55
55
|
### Write a custom generator
|
|
56
56
|
|
|
57
57
|
A custom generator reads the same API model the built-ins consume, runs in the same pass, and returns files.
|
|
58
|
-
|
|
58
|
+
Build real TypeScript with the emit toolkit from `@redocly/client-generator/generate` — the same `ts.factory` + printer the built-in generators use, so the schema→type mapping matches the sdk's exactly:
|
|
59
59
|
|
|
60
60
|
```ts
|
|
61
61
|
// response-map-generator.ts
|
|
62
|
-
import { defineGenerator
|
|
63
|
-
import {
|
|
62
|
+
import { defineGenerator } from '@redocly/client-generator';
|
|
63
|
+
import { printStatements, schemaToTypeNode, ts } from '@redocly/client-generator/generate';
|
|
64
|
+
|
|
65
|
+
const { factory } = ts;
|
|
64
66
|
|
|
65
67
|
export default defineGenerator({
|
|
66
68
|
name: 'response-map',
|
|
67
|
-
requires: ['
|
|
69
|
+
requires: ['sdk'],
|
|
68
70
|
run({ model, outputPath }) {
|
|
69
|
-
const printer = new Printer();
|
|
70
71
|
// One `ResponseShapes` entry per operation with a JSON success body.
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
() => {
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
const members = model.services
|
|
73
|
+
.flatMap((service) => service.operations)
|
|
74
|
+
.flatMap((op) => {
|
|
75
|
+
const success = op.successResponses.find((r) => r.contentType.includes('json'));
|
|
76
|
+
if (!success) return [];
|
|
77
|
+
return [
|
|
78
|
+
factory.createPropertySignature(
|
|
79
|
+
undefined,
|
|
80
|
+
op.name,
|
|
81
|
+
undefined,
|
|
82
|
+
schemaToTypeNode(success.schema)
|
|
83
|
+
),
|
|
84
|
+
];
|
|
85
|
+
});
|
|
86
|
+
const alias = factory.createTypeAliasDeclaration(
|
|
87
|
+
[factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
|
88
|
+
'ResponseShapes',
|
|
89
|
+
undefined,
|
|
90
|
+
factory.createTypeLiteralNode(members)
|
|
82
91
|
);
|
|
83
|
-
return [
|
|
92
|
+
return [
|
|
93
|
+
{ path: outputPath.replace(/\.ts$/, '.responses.ts'), content: printStatements([alias]) },
|
|
94
|
+
];
|
|
84
95
|
},
|
|
85
96
|
});
|
|
86
97
|
```
|
|
@@ -139,10 +150,7 @@ Authors a custom generator (`{ name, run }` plus optional `requires`/`errorModes
|
|
|
139
150
|
function defineGenerator(generator: CustomGenerator): CustomGenerator;
|
|
140
151
|
```
|
|
141
152
|
|
|
142
|
-
The `@redocly/client-generator/generate` entry also exports the
|
|
143
|
-
The package root exports the IR types plus the language-neutral toolkit.
|
|
144
|
-
A custom generator emits TypeScript exactly as the first-party ones do.
|
|
145
|
-
See the [`typescript-types-generator` example](https://github.com/Redocly/redocly-cli/tree/main/tests/e2e/generate-client/examples/typescript-types-generator).
|
|
153
|
+
The `@redocly/client-generator/generate` entry also exports the emit toolkit the built-ins use (`ts`, `printStatements`, `parseStatements`, `operationSignature`, `schemaToTypeNode`, `pascalCase`, …), and the package root exports the IR types, so a custom generator emits TypeScript exactly as the first-party ones do — see the [`ast-toolkit-generator` example](https://github.com/Redocly/redocly-cli/tree/main/tests/e2e/generate-client/examples/ast-toolkit-generator).
|
|
146
154
|
|
|
147
155
|
### `defineClientSetup`
|
|
148
156
|
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { SecuritySchemeModel } from '../intermediate-representation/model.js';
|
|
2
|
+
/**
|
|
3
|
+
* Public setter name for an apiKey scheme: `setApiKey` when it's the only apiKey
|
|
4
|
+
* scheme (of any `in`), else `setApiKey<Key>` to disambiguate.
|
|
5
|
+
*/
|
|
6
|
+
export declare function apiKeySetterName(key: string, sole: boolean): string;
|
|
7
|
+
/**
|
|
8
|
+
* The public credential-setter names the client exports for a set of schemes,
|
|
9
|
+
* in emission order (`setBearer`, then `setBasicAuth`, then each apiKey setter).
|
|
10
|
+
* Also seeds the reserved-identifier set (`packageIdents`) so operation names
|
|
11
|
+
* can't collide with a setter.
|
|
12
|
+
*/
|
|
13
|
+
export declare function authSetterNames(schemes: SecuritySchemeModel[]): string[];
|
|
14
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/emitters/auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAGnF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE,CAWxE"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
// The auth *naming* conventions of the generated surface. Credential injection itself
|
|
2
|
+
// lives in the runtime (src/runtime/auth.ts); the wiring emitter only derives the
|
|
3
|
+
// public setter names bound to the client instance's `auth` members.
|
|
4
|
+
import { pascalCase } from './support.js';
|
|
5
|
+
/**
|
|
6
|
+
* Public setter name for an apiKey scheme: `setApiKey` when it's the only apiKey
|
|
7
|
+
* scheme (of any `in`), else `setApiKey<Key>` to disambiguate.
|
|
8
|
+
*/
|
|
9
|
+
export function apiKeySetterName(key, sole) {
|
|
10
|
+
return sole ? 'setApiKey' : `setApiKey${pascalCase(key)}`;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* The public credential-setter names the client exports for a set of schemes,
|
|
14
|
+
* in emission order (`setBearer`, then `setBasicAuth`, then each apiKey setter).
|
|
15
|
+
* Also seeds the reserved-identifier set (`packageIdents`) so operation names
|
|
16
|
+
* can't collide with a setter.
|
|
17
|
+
*/
|
|
18
|
+
export function authSetterNames(schemes) {
|
|
19
|
+
const names = [];
|
|
20
|
+
if (schemes.some((s) => s.kind === 'bearer'))
|
|
21
|
+
names.push('setBearer');
|
|
22
|
+
if (schemes.some((s) => s.kind === 'basic'))
|
|
23
|
+
names.push('setBasicAuth');
|
|
24
|
+
const apiKeySchemes = schemes.filter((s) => s.kind === 'apiKeyHeader' || s.kind === 'apiKeyQuery' || s.kind === 'apiKeyCookie');
|
|
25
|
+
for (const scheme of apiKeySchemes) {
|
|
26
|
+
names.push(apiKeySetterName(scheme.key, apiKeySchemes.length === 1));
|
|
27
|
+
}
|
|
28
|
+
return names;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/emitters/auth.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,kFAAkF;AAClF,qEAAqE;AAGrE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAW,EAAE,IAAa;IACzD,OAAO,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,OAA8B;IAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACtE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC;QAAE,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IACxE,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAClC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,cAAc,IAAI,CAAC,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,CAAC,IAAI,KAAK,cAAc,CAC1F,CAAC;IACF,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-assembly.d.ts","sourceRoot":"","sources":["../../src/emitters/client-assembly.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client-assembly.d.ts","sourceRoot":"","sources":["../../src/emitters/client-assembly.ts"],"names":[],"mappings":"AAWA,OAAO,EAEL,KAAK,QAAQ,EAGd,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAU,KAAK,WAAW,EAA8B,MAAM,mBAAmB,CAAC;AA2BzF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,GAAE,WAAgB,GAAG,MAAM,CAEvF;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE,WAAW,EACpB,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAErC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Client assembly, shared by both runtime distributions and both output modes. The
|
|
2
|
-
// wiring (descriptor map + `Ops` interface) is identical; only
|
|
3
|
-
// differs — `runtime: 'package'` imports `createClient` from
|
|
2
|
+
// wiring (descriptor map + `Ops` interface, emitters/descriptor.ts) is identical; only
|
|
3
|
+
// the runtime block differs — `runtime: 'package'` imports `createClient` from
|
|
4
4
|
// `@redocly/client-generator`, everything else (inline, the default) embeds the
|
|
5
5
|
// assembled runtime sources in its place (emitters/inline-runtime.ts). Single-file
|
|
6
6
|
// layout: runtime (import line | embedded block) → schema types → type guards →
|
|
@@ -8,18 +8,24 @@
|
|
|
8
8
|
// (package mode only) type re-exports — the embedded types are already exported in
|
|
9
9
|
// place, so the embed arm needs none. Split mode moves the schema types + guards into
|
|
10
10
|
// a sibling `<stem>.schemas.ts` the entry re-exports (`emitClientSplit`).
|
|
11
|
-
// Text templates throughout — no `typescript` at generate time.
|
|
12
11
|
import { allOperations, } from '../intermediate-representation/model.js';
|
|
13
|
-
import {
|
|
12
|
+
import { apiKeySetterName } from './auth.js';
|
|
13
|
+
import { descriptorStatements, opsInterfaceStatements, packageIdents } from './descriptor.js';
|
|
14
14
|
import { banner, HEADER, renderTitleComment } from './emit-options.js';
|
|
15
|
-
import { codeString } from './identifier.js';
|
|
15
|
+
import { codeString, isIdentifier } from './identifier.js';
|
|
16
16
|
import { assembleInlineRuntime } from './inline-runtime.js';
|
|
17
|
-
import {
|
|
17
|
+
import { renderOperationAliases, sseAliases } from './operation-aliases.js';
|
|
18
|
+
import { operationSignature } from './operation-signature.js';
|
|
19
|
+
import { computeResponse, errorTypeNodes, isTypedMultipart } from './operation-types.js';
|
|
20
|
+
import { renderArgList } from './operations.js';
|
|
18
21
|
import { resolveModelPagination } from './pagination.js';
|
|
19
|
-
import {
|
|
22
|
+
import { responseHeadersTypeLiteral } from './response-headers.js';
|
|
20
23
|
import { isSseOp } from './sse.js';
|
|
21
|
-
import {
|
|
22
|
-
import {
|
|
24
|
+
import { pascalCase } from './support.js';
|
|
25
|
+
import { arrow, exportConstStatement, parseStatements, printNodes, printStatements, ts, typedArrow, } from './ts.js';
|
|
26
|
+
import { typeGuardStatements } from './type-guards.js';
|
|
27
|
+
import { typesStatements } from './types.js';
|
|
28
|
+
const { factory } = ts;
|
|
23
29
|
const PACKAGE_SPECIFIER = '@redocly/client-generator';
|
|
24
30
|
export function emitClientSingleFile(model, options = {}) {
|
|
25
31
|
return emitClient(model, options).entry;
|
|
@@ -43,25 +49,25 @@ function emitClient(model, options, splitStem) {
|
|
|
43
49
|
// before any statement is built — one aggregated error for the whole model.
|
|
44
50
|
const pagination = resolveModelPagination(model, options.pagination);
|
|
45
51
|
const ctx = {
|
|
46
|
-
argsStyle: options.argsStyle ?? '
|
|
52
|
+
argsStyle: options.argsStyle ?? 'flat',
|
|
47
53
|
errorMode: options.errorMode ?? 'throw',
|
|
48
54
|
dateType: options.dateType ?? 'string',
|
|
49
55
|
schemaNames: new Set(model.schemas.map((s) => s.name)),
|
|
50
56
|
schemas: model.schemas,
|
|
51
57
|
pagination,
|
|
52
58
|
};
|
|
59
|
+
const flat = ctx.argsStyle === 'flat';
|
|
53
60
|
const hasSse = ops.some(isSseOp);
|
|
54
61
|
const hasRegular = ops.some((op) => !isSseOp(op));
|
|
62
|
+
const apiKeySchemes = model.securitySchemes.filter((s) => s.kind === 'apiKeyHeader' || s.kind === 'apiKeyQuery' || s.kind === 'apiKeyCookie');
|
|
55
63
|
const wiring = ops.length > 0
|
|
56
64
|
? [
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
...opsInterfaceStatements(model, idents, ctx),
|
|
66
|
+
...descriptorStatements(model, idents, ctx.dateType, pagination),
|
|
59
67
|
]
|
|
60
68
|
: // A spec with no operations still gets the uniform wiring shape.
|
|
61
|
-
|
|
62
|
-
'export
|
|
63
|
-
'export const OPERATIONS = {} as const satisfies Record<string, OperationDescriptor>;',
|
|
64
|
-
];
|
|
69
|
+
parseStatements('export type Ops = Record<string, never>;\n' +
|
|
70
|
+
'export const OPERATIONS = {} as const satisfies Record<string, OperationDescriptor>;');
|
|
65
71
|
const runtimeSection = embed
|
|
66
72
|
? assembleInlineRuntime({
|
|
67
73
|
multipart: ops.some((op) => op.requestBody && isTypedMultipart(op.requestBody)),
|
|
@@ -72,17 +78,18 @@ function emitClient(model, options, splitStem) {
|
|
|
72
78
|
setup: !!options.setup,
|
|
73
79
|
paginate: pagination.size > 0,
|
|
74
80
|
})
|
|
75
|
-
: importLine(options, ctx, {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
const
|
|
81
|
+
: importLine(options, ctx, {
|
|
82
|
+
hasFlatSse: hasSse && flat,
|
|
83
|
+
hasFlatRegular: hasRegular && flat,
|
|
84
|
+
hasRegular,
|
|
85
|
+
hasApiKey: apiKeySchemes.length > 0,
|
|
86
|
+
});
|
|
87
|
+
const schemaStatements = [
|
|
88
|
+
...typesStatements(model.schemas, ctx.dateType),
|
|
89
|
+
...typeGuardStatements(model.schemas),
|
|
90
|
+
];
|
|
91
|
+
const bodyStatements = [...ops.flatMap((op) => aliasStatements(op, ctx)), ...wiring];
|
|
92
|
+
const sugar = printNodes(sugarStatements(ops, idents, ctx, model.securitySchemes, apiKeySchemes));
|
|
86
93
|
// Embed mode exports its whole public surface in place; only the package arm re-exports.
|
|
87
94
|
const reexports = embed ? '' : reexportLines(ctx, hasSse);
|
|
88
95
|
// Layout puts the reader's OWN API first (types → aliases → Ops → OPERATIONS) and the
|
|
@@ -96,7 +103,7 @@ function emitClient(model, options, splitStem) {
|
|
|
96
103
|
HEADER,
|
|
97
104
|
renderTitleComment(model),
|
|
98
105
|
...(embed ? [] : [runtimeSection]),
|
|
99
|
-
[
|
|
106
|
+
printStatements([...schemaStatements, ...bodyStatements]),
|
|
100
107
|
...(embed ? [runtimeSection] : []),
|
|
101
108
|
clientSection(options, ctx, model),
|
|
102
109
|
sugar,
|
|
@@ -104,31 +111,50 @@ function emitClient(model, options, splitStem) {
|
|
|
104
111
|
]),
|
|
105
112
|
};
|
|
106
113
|
}
|
|
107
|
-
const
|
|
114
|
+
const body = printStatements(bodyStatements);
|
|
115
|
+
const hasSchemas = schemaStatements.length > 0;
|
|
108
116
|
return {
|
|
109
117
|
entry: banner([
|
|
110
118
|
HEADER,
|
|
111
119
|
renderTitleComment(model),
|
|
112
120
|
hasSchemas
|
|
113
|
-
? schemaLinks(
|
|
121
|
+
? schemaLinks(body + '\n' + sugar, ctx.schemaNames, `./${splitStem}.schemas.${options.importExt ?? 'js'}`)
|
|
114
122
|
: '',
|
|
115
123
|
...(embed ? [] : [runtimeSection]),
|
|
116
|
-
|
|
124
|
+
body,
|
|
117
125
|
...(embed ? [runtimeSection] : []),
|
|
118
126
|
clientSection(options, ctx, model),
|
|
119
127
|
sugar,
|
|
120
128
|
reexports,
|
|
121
129
|
]),
|
|
122
|
-
schemas: hasSchemas
|
|
130
|
+
schemas: hasSchemas
|
|
131
|
+
? banner([HEADER, renderTitleComment(model), printStatements(schemaStatements)])
|
|
132
|
+
: undefined,
|
|
123
133
|
};
|
|
124
134
|
}
|
|
125
135
|
/**
|
|
126
136
|
* The entry ⇄ schemas linkage of the split layout: a type-only import of exactly the
|
|
127
|
-
* schema names the entry's own code references
|
|
128
|
-
*
|
|
137
|
+
* schema names the entry's own code references, plus the public `export *` re-export.
|
|
138
|
+
* Referenced names are found by walking the printed entry code's identifiers (an AST
|
|
139
|
+
* pass over the emitted text, not a substring search — operation JSDoc may mention a
|
|
140
|
+
* schema name, and importing an unreferenced type would trip `noUnusedLocals`).
|
|
129
141
|
*/
|
|
130
|
-
function schemaLinks(
|
|
131
|
-
const
|
|
142
|
+
function schemaLinks(entryCode, schemaNames, specifier) {
|
|
143
|
+
const referenced = new Set();
|
|
144
|
+
// Only TYPE references count as uses of the type-only import: a value-position
|
|
145
|
+
// identifier that happens to share a schema's name (every descriptor's `id:` key,
|
|
146
|
+
// for a schema named `id`) must not drag the name in — strict consumer lint
|
|
147
|
+
// configs flag the resulting unused import.
|
|
148
|
+
const visit = (node) => {
|
|
149
|
+
if (ts.isTypeReferenceNode(node) && ts.isIdentifier(node.typeName)) {
|
|
150
|
+
if (schemaNames.has(node.typeName.text))
|
|
151
|
+
referenced.add(node.typeName.text);
|
|
152
|
+
}
|
|
153
|
+
node.forEachChild(visit);
|
|
154
|
+
};
|
|
155
|
+
for (const statement of parseStatements(entryCode))
|
|
156
|
+
visit(statement);
|
|
157
|
+
const names = [...referenced].sort();
|
|
132
158
|
const importLine = names.length > 0 ? `import type { ${names.join(', ')} } from '${specifier}';\n` : '';
|
|
133
159
|
return `${importLine}export * from '${specifier}';`;
|
|
134
160
|
}
|
|
@@ -138,13 +164,32 @@ function importLine(options, ctx, refs) {
|
|
|
138
164
|
const types = [
|
|
139
165
|
...(options.setup ? ['ClientConfig', 'Middleware'] : []),
|
|
140
166
|
'OperationDescriptor',
|
|
167
|
+
// Flat sugar signatures reference the per-call option types.
|
|
168
|
+
...(refs.hasFlatRegular ? ['RequestOptions'] : []),
|
|
169
|
+
// Flat throw-mode sugar return types vary with the inferred request-option type.
|
|
170
|
+
...(refs.hasFlatRegular && ctx.errorMode !== 'result' ? ['EnvelopeResult'] : []),
|
|
141
171
|
// `Ops` wraps results in `Result` in result mode — but only NON-SSE members
|
|
142
172
|
// (an SSE-only spec would otherwise import it unused and fail noUnusedLocals).
|
|
143
173
|
...(ctx.errorMode === 'result' && refs.hasRegular ? ['Result'] : []),
|
|
174
|
+
...(refs.hasFlatSse ? ['SseOptions'] : []),
|
|
175
|
+
// The apiKey sugar closures take a `TokenProvider`.
|
|
176
|
+
...(refs.hasApiKey ? ['TokenProvider'] : []),
|
|
144
177
|
].sort();
|
|
145
178
|
const names = [...values, ...types.map((t) => `type ${t}`)].join(', ');
|
|
146
179
|
return `import { ${names} } from '${PACKAGE_SPECIFIER}';`;
|
|
147
180
|
}
|
|
181
|
+
/** One operation's `<Op>*` aliases — the same emitters and suppression rules as inline mode. */
|
|
182
|
+
function aliasStatements(op, ctx) {
|
|
183
|
+
const { pathParams } = operationSignature(op);
|
|
184
|
+
const ordered = pathParams.map((p) => p.param);
|
|
185
|
+
const identMap = new Map(pathParams.map((p) => [p.param.name, p.ident]));
|
|
186
|
+
if (isSseOp(op))
|
|
187
|
+
return sseAliases(op, ordered, identMap, ctx, 'wire');
|
|
188
|
+
const { responseType } = computeResponse(op.successResponses, ctx.dateType);
|
|
189
|
+
const errorMembers = ctx.errorMode === 'result' ? errorTypeNodes(op.errorResponses, ctx.dateType) : [];
|
|
190
|
+
const errorAlias = errorMembers.length > 0 ? `${pascalCase(op.name)}Error` : '';
|
|
191
|
+
return renderOperationAliases(op, responseType, ordered, identMap, errorAlias, errorMembers, ctx, true, 'wire');
|
|
192
|
+
}
|
|
148
193
|
/** The (optional) baked setup + the default `client` instance. */
|
|
149
194
|
function clientSection(options, ctx, model) {
|
|
150
195
|
const serverUrl = options.serverUrl ?? model.serverUrl;
|
|
@@ -153,9 +198,6 @@ function clientSection(options, ctx, model) {
|
|
|
153
198
|
// relative URL, which Node's fetch rejects.
|
|
154
199
|
...(serverUrl !== undefined ? [`serverUrl: ${codeString(serverUrl)}`] : []),
|
|
155
200
|
...(ctx.errorMode === 'result' ? ['errorMode: "result"'] : []),
|
|
156
|
-
// The runtime converts a merged call to the namespaced shape, so it has to know
|
|
157
|
-
// which style this module's types promise.
|
|
158
|
-
...(ctx.argsStyle === 'flat' ? ['argsStyle: "flat"'] : []),
|
|
159
201
|
// Client identification for API-owner telemetry; the runtime sends it only
|
|
160
202
|
// outside browsers, and `configure({ clientHeader: false })` disables it.
|
|
161
203
|
'clientHeader: "redocly-client-generator"',
|
|
@@ -168,7 +210,7 @@ function clientSection(options, ctx, model) {
|
|
|
168
210
|
? `mergeSetup({ config: ${config} }, mergeSetup(__redoclySetup, {}))`
|
|
169
211
|
: config;
|
|
170
212
|
// The trailing type args narrow `ctx.operation` to the spec's literal unions.
|
|
171
|
-
// `OperationTag` mirrors
|
|
213
|
+
// `OperationTag` mirrors descriptorStatements' gate: derived only when some
|
|
172
214
|
// operation is tagged (it would otherwise be `never`); zero-ops specs have no
|
|
173
215
|
// derived unions at all, so they keep the string defaults.
|
|
174
216
|
const ops = allOperations(model.services);
|
|
@@ -184,19 +226,118 @@ function clientSection(options, ctx, model) {
|
|
|
184
226
|
client);
|
|
185
227
|
}
|
|
186
228
|
/** Core destructure + per-scheme auth setters + per-operation call sugar. */
|
|
187
|
-
function
|
|
188
|
-
|
|
189
|
-
//
|
|
190
|
-
//
|
|
191
|
-
|
|
229
|
+
function sugarStatements(ops, idents, ctx, schemes, apiKeySchemes) {
|
|
230
|
+
const statements = [...parseStatements('export const { configure, use } = client;')];
|
|
231
|
+
// Auth sugar in `authSetterNames` order: bearer, basic, then each apiKey scheme.
|
|
232
|
+
// The runtime's auth members close over the instance config (no `this`), so
|
|
233
|
+
// direct bindings are safe.
|
|
234
|
+
if (schemes.some((s) => s.kind === 'bearer')) {
|
|
235
|
+
statements.push(...parseStatements('export const setBearer = client.auth.bearer;'));
|
|
236
|
+
}
|
|
237
|
+
if (schemes.some((s) => s.kind === 'basic')) {
|
|
238
|
+
statements.push(...parseStatements('export const setBasicAuth = client.auth.basic;'));
|
|
239
|
+
}
|
|
240
|
+
for (const scheme of apiKeySchemes) {
|
|
241
|
+
const name = apiKeySetterName(scheme.key, apiKeySchemes.length === 1);
|
|
242
|
+
statements.push(...parseStatements(`export const ${name} = (value: TokenProvider) => client.auth.apiKey(${codeString(scheme.key)}, value);`));
|
|
243
|
+
}
|
|
192
244
|
if (ops.length === 0)
|
|
193
|
-
return
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
245
|
+
return statements;
|
|
246
|
+
if (ctx.argsStyle === 'grouped') {
|
|
247
|
+
// Grouped style: the client methods already take the grouped args shape.
|
|
248
|
+
const names = ops.map((op) => idents.get(op.name)).join(', ');
|
|
249
|
+
statements.push(...parseStatements(`export const { ${names} } = client;`));
|
|
250
|
+
return statements;
|
|
251
|
+
}
|
|
252
|
+
for (const op of ops)
|
|
253
|
+
statements.push(flatSugarStatement(op, idents.get(op.name), ctx));
|
|
254
|
+
return statements;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* One flat one-liner: today's positional signature forwarding to the grouped client
|
|
258
|
+
* method. Path values are keyed by the WIRE name (the runtime routes
|
|
259
|
+
* `args[param.name]`); a path param literally named `params`/`body`/`headers` would
|
|
260
|
+
* collide with the slot keys — a spec-acknowledged runtime-contract limitation.
|
|
261
|
+
* A paginated operation's arrow is wrapped in `Object.assign(…, { pages, items })`
|
|
262
|
+
* so the flat sugar preserves the method-attached iterators.
|
|
263
|
+
* Throw-mode (non-SSE) arrows are generic over `init` so `{ envelope: true }` narrows
|
|
264
|
+
* the return type to `Envelope<…>` (plain `RequestOptions` would collapse the overload).
|
|
265
|
+
*/
|
|
266
|
+
function flatSugarStatement(op, ident, ctx) {
|
|
267
|
+
const { pathParams } = operationSignature(op);
|
|
268
|
+
const params = renderArgList(op, pathParams.map((p) => p.param), new Map(pathParams.map((p) => [p.param.name, p.ident])), ctx);
|
|
269
|
+
const props = pathParams.map(({ param, ident: paramIdent }) => param.name === paramIdent
|
|
270
|
+
? factory.createShorthandPropertyAssignment(paramIdent)
|
|
271
|
+
: factory.createPropertyAssignment(isIdentifier(param.name) ? param.name : factory.createStringLiteral(param.name), factory.createIdentifier(paramIdent)));
|
|
272
|
+
if (op.queryParams.length > 0)
|
|
273
|
+
props.push(factory.createShorthandPropertyAssignment('params'));
|
|
274
|
+
if (op.requestBody)
|
|
275
|
+
props.push(factory.createShorthandPropertyAssignment('body'));
|
|
276
|
+
if (op.headerParams.length > 0) {
|
|
277
|
+
props.push(factory.createShorthandPropertyAssignment('headers'));
|
|
278
|
+
}
|
|
279
|
+
if (op.cookieParams.length > 0) {
|
|
280
|
+
props.push(factory.createShorthandPropertyAssignment('cookies'));
|
|
281
|
+
}
|
|
282
|
+
const call = factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('client'), ident), undefined, [factory.createObjectLiteralExpression(props, false), factory.createIdentifier('init')]);
|
|
283
|
+
const fn = ctx.errorMode !== 'result' && !isSseOp(op)
|
|
284
|
+
? envelopeAwareFlatArrow(op, params, call, ctx)
|
|
285
|
+
: arrow(params, call);
|
|
286
|
+
if (!ctx.pagination?.has(op.name))
|
|
287
|
+
return exportConstStatement(ident, fn);
|
|
288
|
+
const methodMember = (name) => factory.createPropertyAssignment(name, factory.createPropertyAccessExpression(factory.createPropertyAccessExpression(factory.createIdentifier('client'), ident), name));
|
|
289
|
+
return exportConstStatement(ident, factory.createCallExpression(factory.createPropertyAccessExpression(factory.createIdentifier('Object'), 'assign'), undefined, [
|
|
290
|
+
fn,
|
|
291
|
+
factory.createObjectLiteralExpression([methodMember('pages'), methodMember('items')], false),
|
|
292
|
+
]));
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* `<I extends RequestOptions | undefined = undefined>(…, init?: I) =>
|
|
296
|
+
* Promise<EnvelopeResult<Result, Headers, I>>`
|
|
297
|
+
*/
|
|
298
|
+
function envelopeAwareFlatArrow(op, params, call, ctx) {
|
|
299
|
+
// `renderArgList` always appends `init` last — retype it as optional generic `I`
|
|
300
|
+
// (no default: `init?: I = {}` is invalid, and `init: I = {}` fails under strict
|
|
301
|
+
// generic checks). Cast the call's Promise so the conditional return type sticks.
|
|
302
|
+
const initTyped = [
|
|
303
|
+
...params.slice(0, -1),
|
|
304
|
+
factory.createParameterDeclaration(undefined, undefined, 'init', factory.createToken(ts.SyntaxKind.QuestionToken), factory.createTypeReferenceNode('I')),
|
|
305
|
+
];
|
|
306
|
+
const resultType = flatResultType(op, ctx);
|
|
307
|
+
const headersType = flatHeadersType(op, ctx);
|
|
308
|
+
const returnType = factory.createTypeReferenceNode('Promise', [
|
|
309
|
+
factory.createTypeReferenceNode('EnvelopeResult', [
|
|
310
|
+
resultType,
|
|
311
|
+
headersType,
|
|
312
|
+
factory.createTypeReferenceNode('I'),
|
|
313
|
+
]),
|
|
314
|
+
]);
|
|
315
|
+
const typeParam = factory.createTypeParameterDeclaration(undefined, 'I', factory.createUnionTypeNode([
|
|
316
|
+
factory.createTypeReferenceNode('RequestOptions'),
|
|
317
|
+
factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword),
|
|
318
|
+
]), factory.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword));
|
|
319
|
+
const castCall = factory.createAsExpression(call, returnType);
|
|
320
|
+
return typedArrow([typeParam], initTyped, returnType, castCall);
|
|
321
|
+
}
|
|
322
|
+
function flatResultType(op, ctx) {
|
|
323
|
+
const { responseType } = computeResponse(op.successResponses, ctx.dateType);
|
|
324
|
+
const resultName = `${pascalCase(op.name)}Result`;
|
|
325
|
+
return ctx.schemaNames.has(resultName)
|
|
326
|
+
? responseType
|
|
327
|
+
: factory.createTypeReferenceNode(resultName);
|
|
328
|
+
}
|
|
329
|
+
function flatHeadersType(op, ctx) {
|
|
330
|
+
const headers = op.successResponseHeaders;
|
|
331
|
+
if (!headers || headers.length === 0) {
|
|
332
|
+
return factory.createTypeReferenceNode('Record', [
|
|
333
|
+
factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
|
334
|
+
factory.createKeywordTypeNode(ts.SyntaxKind.NeverKeyword),
|
|
335
|
+
]);
|
|
336
|
+
}
|
|
337
|
+
const alias = `${pascalCase(op.name)}ResponseHeaders`;
|
|
338
|
+
return ctx.schemaNames.has(alias)
|
|
339
|
+
? responseHeadersTypeLiteral(headers, ctx.schemas)
|
|
340
|
+
: factory.createTypeReferenceNode(alias);
|
|
200
341
|
}
|
|
201
342
|
/** Public type surface re-exported for single-import DX (plus the `ApiError` class). */
|
|
202
343
|
function reexportLines(ctx, hasSse) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-assembly.js","sourceRoot":"","sources":["../../src/emitters/client-assembly.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client-assembly.js","sourceRoot":"","sources":["../../src/emitters/client-assembly.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import { type ApiModel } from '../intermediate-representation/model.js';
|
|
2
|
-
import type {
|
|
2
|
+
import type { EmitContext } from './operations.js';
|
|
3
3
|
import type { ModelPagination } from './pagination.js';
|
|
4
|
-
import
|
|
4
|
+
import { ts } from './ts.js';
|
|
5
|
+
import { type DateType } from './types.js';
|
|
5
6
|
/**
|
|
6
7
|
* Operation-name → emitted-identifier plan. The full reserved set (wiring + imported
|
|
7
|
-
* bindings, computed from the model FIRST) is seeded before any operation
|
|
8
|
+
* bindings + auth sugar, computed from the model FIRST) is seeded before any operation
|
|
8
9
|
* is sanitized, so collisions rename the operation (`configure` → `configure_2`)
|
|
9
10
|
* deterministically regardless of document order.
|
|
10
11
|
*/
|
|
11
12
|
export declare function packageIdents(model: ApiModel): Map<string, string>;
|
|
12
|
-
/** `export const OPERATIONS = {…} as const satisfies
|
|
13
|
-
export declare function
|
|
13
|
+
/** `export const OPERATIONS = {…} as const satisfies Record<string, OperationDescriptor>;` + unions. */
|
|
14
|
+
export declare function descriptorStatements(model: ApiModel, idents: Map<string, string>, dateType: DateType, pagination?: ModelPagination): ts.Statement[];
|
|
15
|
+
/**
|
|
16
|
+
* `export type Ops = { <ident>: { args: …; result: …; kind?: "sse" } }` — the type map
|
|
17
|
+
* `createClient<Ops>` consumes. A type alias (not an interface) on purpose: aliases get
|
|
18
|
+
* an implicit index signature, so `Ops` satisfies the runtime's `OpsShape` constraint;
|
|
19
|
+
* an interface would need an explicit `[key: string]` member.
|
|
20
|
+
*/
|
|
21
|
+
export declare function opsInterfaceStatements(model: ApiModel, idents: Map<string, string>, ctx: EmitContext): ts.Statement[];
|
|
14
22
|
//# sourceMappingURL=descriptor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/emitters/descriptor.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,QAAQ,EAId,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"descriptor.d.ts","sourceRoot":"","sources":["../../src/emitters/descriptor.ts"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,QAAQ,EAId,MAAM,yCAAyC,CAAC;AAOjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAKvD,OAAO,EAA6C,EAAE,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,KAAK,QAAQ,EAAoB,MAAM,YAAY,CAAC;AAI7D;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAKlE;AAgED,wGAAwG;AACxG,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,QAAQ,EAAE,QAAQ,EAClB,UAAU,CAAC,EAAE,eAAe,GAC3B,EAAE,CAAC,SAAS,EAAE,CAqDhB;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,QAAQ,EACf,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3B,GAAG,EAAE,WAAW,GACf,EAAE,CAAC,SAAS,EAAE,CAehB"}
|