ts-procedures 5.6.0-beta.2 → 5.7.1
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 +37 -2
- package/agent_config/claude-code/skills/guide/api-reference.md +29 -6
- package/agent_config/claude-code/skills/guide/patterns.md +1 -0
- package/agent_config/copilot/copilot-instructions.md +7 -0
- package/agent_config/cursor/cursorrules +7 -0
- package/build/codegen/bin/cli.d.ts +27 -1
- package/build/codegen/bin/cli.js +90 -11
- package/build/codegen/bin/cli.js.map +1 -1
- package/build/codegen/bin/cli.test.js +96 -1
- package/build/codegen/bin/cli.test.js.map +1 -1
- package/build/codegen/constants.d.ts +1 -0
- package/build/codegen/constants.js +2 -0
- package/build/codegen/constants.js.map +1 -0
- package/build/codegen/e2e.test.js +143 -0
- package/build/codegen/e2e.test.js.map +1 -1
- package/build/codegen/emit-client-runtime.d.ts +9 -0
- package/build/codegen/emit-client-runtime.js +99 -0
- package/build/codegen/emit-client-runtime.js.map +1 -0
- package/build/codegen/emit-client-runtime.test.d.ts +1 -0
- package/build/codegen/emit-client-runtime.test.js +78 -0
- package/build/codegen/emit-client-runtime.test.js.map +1 -0
- package/build/codegen/emit-client-types.d.ts +8 -0
- package/build/codegen/emit-client-types.js +25 -0
- package/build/codegen/emit-client-types.js.map +1 -0
- package/build/codegen/emit-client-types.test.d.ts +1 -0
- package/build/codegen/emit-client-types.test.js +33 -0
- package/build/codegen/emit-client-types.test.js.map +1 -0
- package/build/codegen/emit-errors.d.ts +8 -1
- package/build/codegen/emit-errors.js +36 -13
- package/build/codegen/emit-errors.js.map +1 -1
- package/build/codegen/emit-errors.test.js +29 -1
- package/build/codegen/emit-errors.test.js.map +1 -1
- package/build/codegen/emit-index.d.ts +5 -1
- package/build/codegen/emit-index.js +4 -5
- package/build/codegen/emit-index.js.map +1 -1
- package/build/codegen/emit-index.test.js +1 -1
- package/build/codegen/emit-index.test.js.map +1 -1
- package/build/codegen/emit-scope.d.ts +10 -1
- package/build/codegen/emit-scope.js +133 -54
- package/build/codegen/emit-scope.js.map +1 -1
- package/build/codegen/emit-scope.test.js +126 -9
- package/build/codegen/emit-scope.test.js.map +1 -1
- package/build/codegen/emit-types.d.ts +29 -0
- package/build/codegen/emit-types.js +79 -8
- package/build/codegen/emit-types.js.map +1 -1
- package/build/codegen/emit-types.test.js +103 -1
- package/build/codegen/emit-types.test.js.map +1 -1
- package/build/codegen/index.d.ts +2 -0
- package/build/codegen/index.js +2 -0
- package/build/codegen/index.js.map +1 -1
- package/build/codegen/pipeline.d.ts +2 -0
- package/build/codegen/pipeline.js +29 -4
- package/build/codegen/pipeline.js.map +1 -1
- package/build/codegen/pipeline.test.js +59 -1
- package/build/codegen/pipeline.test.js.map +1 -1
- package/package.json +10 -2
- package/src/client/call.ts +74 -0
- package/src/client/errors.ts +43 -0
- package/src/client/fetch-adapter.ts +191 -0
- package/src/client/hooks.ts +65 -0
- package/src/client/index.ts +121 -0
- package/src/client/request-builder.ts +73 -0
- package/src/client/stream.ts +164 -0
- package/src/client/types.ts +103 -0
|
@@ -102,9 +102,37 @@ describe('emitErrorsFile', () => {
|
|
|
102
102
|
});
|
|
103
103
|
it('respects ajscOpts passed to jsonSchemaToTypeString', async () => {
|
|
104
104
|
// Just verify it does not crash when options are passed — behavior is tested in emit-types.test.ts
|
|
105
|
-
const result = await emitErrorsFile([procedureErrorDoc], { enumStyle: 'union' });
|
|
105
|
+
const result = await emitErrorsFile([procedureErrorDoc], { ajsc: { enumStyle: 'union' } });
|
|
106
106
|
expect(result).toBeDefined();
|
|
107
107
|
expect(result).toContain('export type ProcedureError =');
|
|
108
108
|
});
|
|
109
|
+
describe('namespaceTypes', () => {
|
|
110
|
+
it('wraps error types in export namespace Errors', async () => {
|
|
111
|
+
const result = await emitErrorsFile([procedureErrorDoc, validationErrorDoc], { namespaceTypes: true });
|
|
112
|
+
expect(result).toBeDefined();
|
|
113
|
+
expect(result).toContain('export namespace Errors {');
|
|
114
|
+
expect(result).toContain('export type ProcedureError =');
|
|
115
|
+
expect(result).toContain('export type ProcedureValidationError =');
|
|
116
|
+
});
|
|
117
|
+
it('places union inside the namespace', async () => {
|
|
118
|
+
const result = await emitErrorsFile([procedureErrorDoc, validationErrorDoc], { namespaceTypes: true });
|
|
119
|
+
expect(result).toBeDefined();
|
|
120
|
+
expect(result).toContain('export type ProcedureErrorUnion = ProcedureError | ProcedureValidationError');
|
|
121
|
+
// Union should be inside the namespace (indented)
|
|
122
|
+
const lines = result.split('\n');
|
|
123
|
+
const unionLine = lines.find((l) => l.includes('ProcedureErrorUnion'));
|
|
124
|
+
expect(unionLine).toMatch(/^\s+export type ProcedureErrorUnion/);
|
|
125
|
+
});
|
|
126
|
+
it('includes JSDoc inside namespace', async () => {
|
|
127
|
+
const result = await emitErrorsFile([procedureErrorDoc], { namespaceTypes: true });
|
|
128
|
+
expect(result).toBeDefined();
|
|
129
|
+
expect(result).toContain('(HTTP 500)');
|
|
130
|
+
});
|
|
131
|
+
it('flat mode does not wrap in namespace', async () => {
|
|
132
|
+
const result = await emitErrorsFile([procedureErrorDoc], { namespaceTypes: false });
|
|
133
|
+
expect(result).toBeDefined();
|
|
134
|
+
expect(result).not.toContain('export namespace Errors');
|
|
135
|
+
});
|
|
136
|
+
});
|
|
109
137
|
});
|
|
110
138
|
//# sourceMappingURL=emit-errors.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-errors.test.js","sourceRoot":"","sources":["../../src/codegen/emit-errors.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"emit-errors.test.js","sourceRoot":"","sources":["../../src/codegen/emit-errors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import type { ScopeGroup } from './group-routes.js';
|
|
2
|
+
export interface EmitIndexOptions {
|
|
3
|
+
clientImportPath?: string;
|
|
4
|
+
hasErrors?: boolean;
|
|
5
|
+
}
|
|
2
6
|
/**
|
|
3
7
|
* Generates a barrel index file that re-exports all scope files and provides
|
|
4
8
|
* a `createScopeBindings` factory function.
|
|
5
9
|
*/
|
|
6
|
-
export declare function emitIndexFile(groups: ScopeGroup[],
|
|
10
|
+
export declare function emitIndexFile(groups: ScopeGroup[], options?: EmitIndexOptions): string;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CODEGEN_HEADER } from './constants.js';
|
|
1
2
|
// ---------------------------------------------------------------------------
|
|
2
3
|
// Helpers
|
|
3
4
|
// ---------------------------------------------------------------------------
|
|
@@ -12,14 +13,12 @@ function toPascalCase(str) {
|
|
|
12
13
|
function bindFunctionName(camelCase) {
|
|
13
14
|
return `bind${toPascalCase(camelCase)}Scope`;
|
|
14
15
|
}
|
|
15
|
-
// ---------------------------------------------------------------------------
|
|
16
|
-
// emitIndexFile
|
|
17
|
-
// ---------------------------------------------------------------------------
|
|
18
16
|
/**
|
|
19
17
|
* Generates a barrel index file that re-exports all scope files and provides
|
|
20
18
|
* a `createScopeBindings` factory function.
|
|
21
19
|
*/
|
|
22
|
-
export function emitIndexFile(groups,
|
|
20
|
+
export function emitIndexFile(groups, options) {
|
|
21
|
+
const { clientImportPath = 'ts-procedures/client', hasErrors = false } = options ?? {};
|
|
23
22
|
const bindImports = groups
|
|
24
23
|
.map((g) => `import { ${bindFunctionName(g.camelCase)} } from './${g.scopeKey}'`)
|
|
25
24
|
.join('\n');
|
|
@@ -32,7 +31,7 @@ export function emitIndexFile(groups, clientImportPath = 'ts-procedures/client',
|
|
|
32
31
|
.map((g) => ` ${g.camelCase}: ${bindFunctionName(g.camelCase)}(client),`)
|
|
33
32
|
.join('\n');
|
|
34
33
|
return [
|
|
35
|
-
|
|
34
|
+
CODEGEN_HEADER,
|
|
36
35
|
`import type { ClientInstance } from '${clientImportPath}'`,
|
|
37
36
|
bindImports,
|
|
38
37
|
'',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-index.js","sourceRoot":"","sources":["../../src/codegen/emit-index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"emit-index.js","sourceRoot":"","sources":["../../src/codegen/emit-index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAE/C,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,oFAAoF;AACpF,SAAS,YAAY,CAAC,GAAW;IAC/B,OAAO,GAAG;SACP,KAAK,CAAC,UAAU,CAAC;SACjB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SAC3D,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,wEAAwE;AACxE,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,OAAO,YAAY,CAAC,SAAS,CAAC,OAAO,CAAA;AAC9C,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB,EAAE,OAA0B;IAC5E,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IACtF,MAAM,WAAW,GAAG,MAAM;SACvB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,QAAQ,GAAG,CAAC;SAChF,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,cAAc,GAAG,MAAM;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,CAAC,QAAQ,GAAG,CAAC;SAC7C,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,EAAE,CAAA;IAEnE,MAAM,SAAS,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAE7E,MAAM,aAAa,GAAG,MAAM;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,SAAS,KAAK,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC;SAC3E,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO;QACL,cAAc;QACd,wCAAwC,gBAAgB,GAAG;QAC3D,WAAW;QACX,EAAE;QACF,SAAS;QACT,EAAE;QACF,+DAA+D;QAC/D,YAAY;QACZ,aAAa;QACb,KAAK;QACL,GAAG;QACH,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
|
|
@@ -70,7 +70,7 @@ describe('emitIndexFile', () => {
|
|
|
70
70
|
});
|
|
71
71
|
describe('clientImportPath', () => {
|
|
72
72
|
it('uses custom clientImportPath in import statement', () => {
|
|
73
|
-
const output = emitIndexFile([usersGroup], '@my-app/client');
|
|
73
|
+
const output = emitIndexFile([usersGroup], { clientImportPath: '@my-app/client' });
|
|
74
74
|
expect(output).toContain("import type { ClientInstance } from '@my-app/client'");
|
|
75
75
|
expect(output).not.toContain("from 'ts-procedures/client'");
|
|
76
76
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-index.test.js","sourceRoot":"","sources":["../../src/codegen/emit-index.test.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"emit-index.test.js","sourceRoot":"","sources":["../../src/codegen/emit-index.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,15 @@
|
|
|
1
1
|
import type { ScopeGroup } from './group-routes.js';
|
|
2
2
|
import { type AjscOptions } from './emit-types.js';
|
|
3
|
+
export interface EmitScopeOptions {
|
|
4
|
+
ajsc?: AjscOptions;
|
|
5
|
+
clientImportPath?: string;
|
|
6
|
+
namespaceTypes?: boolean;
|
|
7
|
+
}
|
|
3
8
|
/**
|
|
4
9
|
* Generates a complete TypeScript scope file for a ScopeGroup.
|
|
10
|
+
*
|
|
11
|
+
* When `namespaceTypes` is true, types are wrapped in nested TypeScript namespaces
|
|
12
|
+
* and ajsc runs with `inlineTypes: false` so formatting options (enumStyle, depluralize,
|
|
13
|
+
* jsdoc, etc.) produce extracted sub-types inside each namespace.
|
|
5
14
|
*/
|
|
6
|
-
export declare function emitScopeFile(group: ScopeGroup,
|
|
15
|
+
export declare function emitScopeFile(group: ScopeGroup, options?: EmitScopeOptions): Promise<string>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsonSchemaToTypeBody, jsonSchemaToExtractedTypes, } from './emit-types.js';
|
|
2
|
+
import { CODEGEN_HEADER } from './constants.js';
|
|
2
3
|
// ---------------------------------------------------------------------------
|
|
3
4
|
// Helpers
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
@@ -43,17 +44,69 @@ function unwrapSseEnvelope(schema) {
|
|
|
43
44
|
const dataSchema = props['data'];
|
|
44
45
|
return dataSchema ?? schema;
|
|
45
46
|
}
|
|
46
|
-
|
|
47
|
+
// ---------------------------------------------------------------------------
|
|
48
|
+
// Shared type formatting helpers
|
|
49
|
+
// ---------------------------------------------------------------------------
|
|
50
|
+
/** Indent each line of a multi-line string by a given prefix. */
|
|
51
|
+
function indent(text, prefix) {
|
|
52
|
+
return text.split('\n').map((line) => (line ? prefix + line : line)).join('\n');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Converts multiple schemas into type declarations and type references.
|
|
56
|
+
* In flat mode: `export type ${routePascal}${shortName} = <body>`
|
|
57
|
+
* In namespace mode: extracted sub-types + named types inside `export namespace ${routePascal} { ... }`
|
|
58
|
+
*/
|
|
59
|
+
async function formatTypes(routePascal, types, ctx) {
|
|
60
|
+
const declarations = [];
|
|
61
|
+
const refs = {};
|
|
62
|
+
if (ctx.namespaceTypes) {
|
|
63
|
+
const nsLines = [];
|
|
64
|
+
const seenDeclarations = new Set();
|
|
65
|
+
for (const { shortName, schema } of types) {
|
|
66
|
+
if (schema == null)
|
|
67
|
+
continue;
|
|
68
|
+
const result = await jsonSchemaToExtractedTypes(schema, ctx.ajsc);
|
|
69
|
+
if (result == null)
|
|
70
|
+
continue;
|
|
71
|
+
// Collect extracted sub-types (deduplicate across schemas)
|
|
72
|
+
for (const decl of result.declarations) {
|
|
73
|
+
if (!seenDeclarations.has(decl)) {
|
|
74
|
+
seenDeclarations.add(decl);
|
|
75
|
+
nsLines.push(indent(decl, ' '));
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
nsLines.push(` export type ${shortName} = ${result.body}`);
|
|
79
|
+
refs[shortName] = `${ctx.scopePascal}.${routePascal}.${shortName}`;
|
|
80
|
+
}
|
|
81
|
+
if (nsLines.length > 0) {
|
|
82
|
+
declarations.push(` export namespace ${routePascal} {\n${nsLines.join('\n')}\n }`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
for (const { shortName, schema } of types) {
|
|
87
|
+
if (schema == null)
|
|
88
|
+
continue;
|
|
89
|
+
const flatName = `${routePascal}${shortName}`;
|
|
90
|
+
const body = await jsonSchemaToTypeBody(schema, ctx.ajsc);
|
|
91
|
+
if (body == null)
|
|
92
|
+
continue;
|
|
93
|
+
declarations.push(`export type ${flatName} = ${body}`);
|
|
94
|
+
refs[shortName] = flatName;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
return { declarations, refs };
|
|
98
|
+
}
|
|
99
|
+
// ---------------------------------------------------------------------------
|
|
100
|
+
// Route emitters
|
|
101
|
+
// ---------------------------------------------------------------------------
|
|
102
|
+
async function emitRpcRoute(route, ctx) {
|
|
47
103
|
const pascal = toPascalCase(route.name);
|
|
48
|
-
const
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
typeDeclarations.push(responseType);
|
|
55
|
-
const paramsTypeName = paramsType != null ? `${pascal}Params` : 'unknown';
|
|
56
|
-
const responseTypeName = responseType != null ? `${pascal}Response` : 'unknown';
|
|
104
|
+
const { declarations, refs } = await formatTypes(pascal, [
|
|
105
|
+
{ shortName: 'Params', schema: route.jsonSchema.body },
|
|
106
|
+
{ shortName: 'Response', schema: route.jsonSchema.response },
|
|
107
|
+
], ctx);
|
|
108
|
+
const paramsTypeName = refs['Params'] ?? 'unknown';
|
|
109
|
+
const responseTypeName = refs['Response'] ?? 'unknown';
|
|
57
110
|
const scopeStr = Array.isArray(route.scope) ? route.scope.join('-') : route.scope;
|
|
58
111
|
const callable = [
|
|
59
112
|
` /** ${route.method.toUpperCase()} ${route.path} */`,
|
|
@@ -68,36 +121,54 @@ async function emitRpcRoute(route, ajscOpts) {
|
|
|
68
121
|
` }, options)`,
|
|
69
122
|
` },`,
|
|
70
123
|
].join('\n');
|
|
71
|
-
return { typeDeclarations, callable, hasStream: false };
|
|
124
|
+
return { typeDeclarations: declarations, callable, hasStream: false };
|
|
72
125
|
}
|
|
73
|
-
async function emitApiRoute(route,
|
|
126
|
+
async function emitApiRoute(route, ctx) {
|
|
74
127
|
const pascal = toPascalCase(route.name);
|
|
75
|
-
const typeDeclarations = [];
|
|
76
128
|
const channelKeys = ['pathParams', 'query', 'body', 'headers'];
|
|
129
|
+
// Build channel types + structured Params type
|
|
130
|
+
const channelTypes = [];
|
|
77
131
|
const presentChannels = [];
|
|
78
132
|
for (const channel of channelKeys) {
|
|
79
133
|
const channelSchema = route.jsonSchema[channel];
|
|
80
134
|
if (channelSchema != null) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
if (typeStr != null) {
|
|
84
|
-
typeDeclarations.push(typeStr);
|
|
85
|
-
presentChannels.push(channel);
|
|
86
|
-
}
|
|
135
|
+
channelTypes.push({ shortName: toPascalCase(channel), schema: channelSchema });
|
|
136
|
+
presentChannels.push(channel);
|
|
87
137
|
}
|
|
88
138
|
}
|
|
89
|
-
//
|
|
139
|
+
// Add response
|
|
140
|
+
channelTypes.push({ shortName: 'Response', schema: route.jsonSchema.response });
|
|
141
|
+
const { declarations, refs } = await formatTypes(pascal, channelTypes, ctx);
|
|
142
|
+
// Compose structured Params type from channels
|
|
143
|
+
let paramsTypeName = 'unknown';
|
|
90
144
|
if (presentChannels.length > 0) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
145
|
+
if (ctx.namespaceTypes) {
|
|
146
|
+
const structureFields = presentChannels
|
|
147
|
+
.map((ch) => `${ch}: ${toPascalCase(ch)}`)
|
|
148
|
+
.join('; ');
|
|
149
|
+
// Insert Params type into the namespace block (before closing brace)
|
|
150
|
+
const lastIdx = declarations.length - 1;
|
|
151
|
+
if (lastIdx >= 0) {
|
|
152
|
+
const lastDecl = declarations[lastIdx];
|
|
153
|
+
const closingIdx = lastDecl.lastIndexOf(' }');
|
|
154
|
+
if (closingIdx !== -1) {
|
|
155
|
+
declarations[lastIdx] =
|
|
156
|
+
lastDecl.slice(0, closingIdx) +
|
|
157
|
+
` export type Params = { ${structureFields} }\n` +
|
|
158
|
+
lastDecl.slice(closingIdx);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
paramsTypeName = `${ctx.scopePascal}.${pascal}.Params`;
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
const structureFields = presentChannels
|
|
165
|
+
.map((ch) => `${ch}: ${refs[toPascalCase(ch)]}`)
|
|
166
|
+
.join('; ');
|
|
167
|
+
declarations.push(`export type ${pascal}Params = { ${structureFields} }`);
|
|
168
|
+
paramsTypeName = `${pascal}Params`;
|
|
169
|
+
}
|
|
95
170
|
}
|
|
96
|
-
const
|
|
97
|
-
if (responseType != null)
|
|
98
|
-
typeDeclarations.push(responseType);
|
|
99
|
-
const paramsTypeName = presentChannels.length > 0 ? `${pascal}Params` : 'unknown';
|
|
100
|
-
const responseTypeName = responseType != null ? `${pascal}Response` : 'unknown';
|
|
171
|
+
const responseTypeName = refs['Response'] ?? 'unknown';
|
|
101
172
|
const scopeStr = route.scope ?? 'default';
|
|
102
173
|
const callable = [
|
|
103
174
|
` /** ${route.method.toUpperCase()} ${route.fullPath} */`,
|
|
@@ -112,28 +183,23 @@ async function emitApiRoute(route, ajscOpts) {
|
|
|
112
183
|
` }, options)`,
|
|
113
184
|
` },`,
|
|
114
185
|
].join('\n');
|
|
115
|
-
return { typeDeclarations, callable, hasStream: false };
|
|
186
|
+
return { typeDeclarations: declarations, callable, hasStream: false };
|
|
116
187
|
}
|
|
117
|
-
async function emitStreamRoute(route,
|
|
188
|
+
async function emitStreamRoute(route, ctx) {
|
|
118
189
|
const pascal = toPascalCase(route.name);
|
|
119
|
-
const typeDeclarations = [];
|
|
120
|
-
const paramsType = await jsonSchemaToTypeString(`${pascal}Params`, route.jsonSchema.params, ajscOpts);
|
|
121
190
|
// Unwrap SSE envelope from yieldType
|
|
122
191
|
let yieldSchema = route.jsonSchema.yieldType;
|
|
123
192
|
if (yieldSchema != null && route.streamMode === 'sse' && isSseEnvelope(yieldSchema)) {
|
|
124
193
|
yieldSchema = unwrapSseEnvelope(yieldSchema);
|
|
125
194
|
}
|
|
126
|
-
const
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
const paramsTypeName = paramsType != null ? `${pascal}Params` : 'unknown';
|
|
135
|
-
const yieldTypeName = yieldType != null ? `${pascal}Yield` : 'unknown';
|
|
136
|
-
const returnTypeName = returnType != null ? `${pascal}Return` : 'void';
|
|
195
|
+
const { declarations, refs } = await formatTypes(pascal, [
|
|
196
|
+
{ shortName: 'Params', schema: route.jsonSchema.params },
|
|
197
|
+
{ shortName: 'Yield', schema: yieldSchema },
|
|
198
|
+
{ shortName: 'Return', schema: route.jsonSchema.returnType },
|
|
199
|
+
], ctx);
|
|
200
|
+
const paramsTypeName = refs['Params'] ?? 'unknown';
|
|
201
|
+
const yieldTypeName = refs['Yield'] ?? 'unknown';
|
|
202
|
+
const returnTypeName = refs['Return'] ?? 'void';
|
|
137
203
|
const scopeStr = Array.isArray(route.scope) ? route.scope.join('-') : route.scope;
|
|
138
204
|
const callable = [
|
|
139
205
|
` /** ${route.methods.map((m) => m.toUpperCase()).join('|')} ${route.path} */`,
|
|
@@ -149,16 +215,22 @@ async function emitStreamRoute(route, ajscOpts) {
|
|
|
149
215
|
` }, options)`,
|
|
150
216
|
` },`,
|
|
151
217
|
].join('\n');
|
|
152
|
-
return { typeDeclarations, callable, hasStream: true };
|
|
218
|
+
return { typeDeclarations: declarations, callable, hasStream: true };
|
|
153
219
|
}
|
|
154
220
|
// ---------------------------------------------------------------------------
|
|
155
221
|
// emitScopeFile
|
|
156
222
|
// ---------------------------------------------------------------------------
|
|
157
223
|
/**
|
|
158
224
|
* Generates a complete TypeScript scope file for a ScopeGroup.
|
|
225
|
+
*
|
|
226
|
+
* When `namespaceTypes` is true, types are wrapped in nested TypeScript namespaces
|
|
227
|
+
* and ajsc runs with `inlineTypes: false` so formatting options (enumStyle, depluralize,
|
|
228
|
+
* jsdoc, etc.) produce extracted sub-types inside each namespace.
|
|
159
229
|
*/
|
|
160
|
-
export async function emitScopeFile(group,
|
|
230
|
+
export async function emitScopeFile(group, options) {
|
|
231
|
+
const { ajsc: ajscOpts, clientImportPath = 'ts-procedures/client', namespaceTypes = false } = options ?? {};
|
|
161
232
|
const pascal = toPascalCase(group.camelCase);
|
|
233
|
+
const ctx = { ajsc: ajscOpts, namespaceTypes, scopePascal: pascal };
|
|
162
234
|
const allTypeDeclarations = [];
|
|
163
235
|
const callables = [];
|
|
164
236
|
let hasStream = false;
|
|
@@ -167,13 +239,13 @@ export async function emitScopeFile(group, ajscOpts, clientImportPath = 'ts-proc
|
|
|
167
239
|
const kind = route.kind ?? inferRouteKind(route);
|
|
168
240
|
try {
|
|
169
241
|
if (kind === 'rpc') {
|
|
170
|
-
chunks = await emitRpcRoute(route,
|
|
242
|
+
chunks = await emitRpcRoute(route, ctx);
|
|
171
243
|
}
|
|
172
244
|
else if (kind === 'api') {
|
|
173
|
-
chunks = await emitApiRoute(route,
|
|
245
|
+
chunks = await emitApiRoute(route, ctx);
|
|
174
246
|
}
|
|
175
247
|
else if (kind === 'stream') {
|
|
176
|
-
chunks = await emitStreamRoute(route,
|
|
248
|
+
chunks = await emitStreamRoute(route, ctx);
|
|
177
249
|
}
|
|
178
250
|
else {
|
|
179
251
|
throw new Error(`Unknown route kind "${kind}"`);
|
|
@@ -192,12 +264,19 @@ export async function emitScopeFile(group, ajscOpts, clientImportPath = 'ts-proc
|
|
|
192
264
|
const clientImports = hasStream
|
|
193
265
|
? `import type { ClientInstance, ProcedureCallOptions, TypedStream } from '${clientImportPath}'`
|
|
194
266
|
: `import type { ClientInstance, ProcedureCallOptions } from '${clientImportPath}'`;
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
267
|
+
let typesBlock;
|
|
268
|
+
if (namespaceTypes && allTypeDeclarations.length > 0) {
|
|
269
|
+
typesBlock = `export namespace ${pascal} {\n${allTypeDeclarations.join('\n\n')}\n}\n`;
|
|
270
|
+
}
|
|
271
|
+
else {
|
|
272
|
+
typesBlock =
|
|
273
|
+
allTypeDeclarations.length > 0
|
|
274
|
+
? allTypeDeclarations.join('\n') + '\n'
|
|
275
|
+
: '';
|
|
276
|
+
}
|
|
198
277
|
const callablesBlock = callables.join('\n\n');
|
|
199
278
|
return [
|
|
200
|
-
|
|
279
|
+
CODEGEN_HEADER,
|
|
201
280
|
clientImports,
|
|
202
281
|
'',
|
|
203
282
|
'// ── Types ────────────────────────────────────────',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emit-scope.js","sourceRoot":"","sources":["../../src/codegen/emit-scope.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emit-scope.js","sourceRoot":"","sources":["../../src/codegen/emit-scope.ts"],"names":[],"mappings":"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"}
|