ts-procedures 5.7.1 → 5.8.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.
Files changed (44) hide show
  1. package/README.md +2 -30
  2. package/agent_config/claude-code/skills/guide/SKILL.md +1 -1
  3. package/agent_config/claude-code/skills/guide/api-reference.md +7 -5
  4. package/agent_config/claude-code/skills/guide/patterns.md +1 -1
  5. package/agent_config/copilot/copilot-instructions.md +2 -1
  6. package/agent_config/cursor/cursorrules +2 -1
  7. package/build/codegen/bin/cli.d.ts +2 -0
  8. package/build/codegen/bin/cli.js +8 -0
  9. package/build/codegen/bin/cli.js.map +1 -1
  10. package/build/codegen/bin/cli.test.js +26 -0
  11. package/build/codegen/bin/cli.test.js.map +1 -1
  12. package/build/codegen/emit-errors.d.ts +4 -1
  13. package/build/codegen/emit-errors.js +11 -5
  14. package/build/codegen/emit-errors.js.map +1 -1
  15. package/build/codegen/emit-errors.test.js +37 -0
  16. package/build/codegen/emit-errors.test.js.map +1 -1
  17. package/build/codegen/emit-index.d.ts +3 -1
  18. package/build/codegen/emit-index.js +6 -13
  19. package/build/codegen/emit-index.js.map +1 -1
  20. package/build/codegen/emit-index.test.js +23 -0
  21. package/build/codegen/emit-index.test.js.map +1 -1
  22. package/build/codegen/emit-scope.js +1 -7
  23. package/build/codegen/emit-scope.js.map +1 -1
  24. package/build/codegen/index.d.ts +1 -0
  25. package/build/codegen/index.js +1 -0
  26. package/build/codegen/index.js.map +1 -1
  27. package/build/codegen/naming.d.ts +7 -0
  28. package/build/codegen/naming.js +21 -0
  29. package/build/codegen/naming.js.map +1 -0
  30. package/build/codegen/naming.test.d.ts +1 -0
  31. package/build/codegen/naming.test.js +40 -0
  32. package/build/codegen/naming.test.js.map +1 -0
  33. package/build/codegen/pipeline.d.ts +1 -0
  34. package/build/codegen/pipeline.js +7 -3
  35. package/build/codegen/pipeline.js.map +1 -1
  36. package/build/codegen/pipeline.test.js +60 -0
  37. package/build/codegen/pipeline.test.js.map +1 -1
  38. package/build/implementations/http/hono-stream/index.test.js +14 -6
  39. package/build/implementations/http/hono-stream/index.test.js.map +1 -1
  40. package/build/index.d.ts +2 -6
  41. package/build/index.js.map +1 -1
  42. package/build/index.test.js +4 -10
  43. package/build/index.test.js.map +1 -1
  44. package/package.json +1 -1
package/README.md CHANGED
@@ -302,35 +302,6 @@ AJV is configured with:
302
302
 
303
303
  **Note:** `schema.params` is validated at runtime. `schema.returnType` is for documentation/introspection only.
304
304
 
305
- ### Skipping Validation with isPrevalidated
306
-
307
- When building framework integrations that validate params before calling procedure handlers, you can pass `isPrevalidated: true` in the context to skip duplicate validation:
308
-
309
- ```typescript
310
- // Framework integration example
311
- app.post('/rpc/:name', async (req, res) => {
312
- const procedure = getProcedure(req.params.name)
313
-
314
- // Validate params at the framework level
315
- const { errors } = procedure.config.validation?.params?.(req.body)
316
- if (errors) {
317
- return res.status(400).json({ errors })
318
- }
319
-
320
- // Call handler with isPrevalidated to skip redundant validation
321
- const result = await procedure.handler(
322
- { ...context, isPrevalidated: true },
323
- req.body
324
- )
325
- res.json(result)
326
- })
327
- ```
328
-
329
- This is useful for:
330
- - Framework integrations (like `HonoStreamAppBuilder`) that validate before starting streams
331
- - Custom middleware that performs early validation for better error responses
332
- - Performance optimization when validation has already occurred
333
-
334
305
  ## Streaming Procedures
335
306
 
336
307
  Streaming procedures use async generators to yield values over time, enabling SSE (Server-Sent Events), HTTP streaming, and real-time data feeds.
@@ -939,7 +910,7 @@ generated/
939
910
  billing.ts # Types + callables for "billing" scope
940
911
  notifications.ts # Types + callables for stream procedures
941
912
  _errors.ts # Typed error classes + ProcedureErrorUnion
942
- index.ts # Barrel exports + createScopeBindings
913
+ index.ts # Barrel exports + createScopeBindings (or create${ServiceName}Bindings)
943
914
  ```
944
915
 
945
916
  ### CLI Reference
@@ -961,6 +932,7 @@ generated/
961
932
  | `--uncountable-words <list>` | Comma-separated words to skip singularization (requires `--namespace-types`) | No |
962
933
  | `--jsdoc` | Emit JSDoc comments from JSON Schema descriptions (requires `--namespace-types`) | No |
963
934
  | `--self-contained` | Emit `_types.ts` and `_client.ts` — no runtime dependency on `ts-procedures` | No |
935
+ | `--service-name <name>` | Customize generated names for multi-service apps (e.g. `Auth` → `createAuthBindings`) | No |
964
936
 
965
937
  > **Note:** ajsc formatting options (`--enum-style enum`, `--depluralize`, `--array-item-naming`, `--uncountable-words`, `--jsdoc`) only take effect with `--namespace-types`. In flat mode, all types are inlined and these options have no effect.
966
938
  >
@@ -47,7 +47,7 @@ Handlers receive `(ctx, params)` where ctx includes:
47
47
  | Base context fields | `TContext` | Always |
48
48
  | `error(message, meta?)` | `(string, object?) => ProcedureError` | Always |
49
49
  | `signal` | `AbortSignal` | **Guaranteed** in CreateStream; optional in Create (present when HTTP impl provides it) |
50
- | `isPrevalidated` | `boolean` | Set by HTTP impls to skip redundant validation |
50
+
51
51
 
52
52
  ## Schema System
53
53
 
@@ -110,7 +110,7 @@ function Create<TName extends string, TParams, TReturnType>(
110
110
  }
111
111
  } & TExtendedConfig,
112
112
  handler: (
113
- ctx: TContext & TLocalContext & { isPrevalidated?: boolean },
113
+ ctx: TContext & TLocalContext,
114
114
  params: TSchemaLib<TParams>
115
115
  ) => Promise<TSchemaLib<TReturnType>>
116
116
  ): {
@@ -140,7 +140,7 @@ function Create<TName extends string, TParams, TReturnType>(
140
140
  | `...TContext` | varies | All base context fields |
141
141
  | `error(message, meta?)` | `Function` | Creates `ProcedureError` — throw this for business logic errors |
142
142
  | `signal?` | `AbortSignal` | Present when HTTP implementation injects it (Express/Hono do this automatically) |
143
- | `isPrevalidated?` | `boolean` | `true` when HTTP impl already validated params — skips AJV validation |
143
+
144
144
 
145
145
  ### Return Value
146
146
 
@@ -198,7 +198,7 @@ function CreateStream<TName extends string, TParams, TYieldType, TReturnType = v
198
198
  validateYields?: boolean // Default: false
199
199
  } & TExtendedConfig,
200
200
  handler: (
201
- ctx: TContext & TStreamContext & { isPrevalidated?: boolean },
201
+ ctx: TContext & TStreamContext,
202
202
  params: TSchemaLib<TParams>
203
203
  ) => AsyncGenerator<TSchemaLib<TYieldType>, TSchemaLib<TReturnType> | void, unknown>
204
204
  ): {
@@ -768,7 +768,7 @@ function createClient<TScopes>(config: {
768
768
 
769
769
  - `config.adapter` — Transport adapter implementing `ClientAdapter`. Use `createFetchAdapter()` for fetch-based transport.
770
770
  - `config.basePath` — Base URL prepended to all request paths (e.g., `'http://localhost:3000'`).
771
- - `config.scopes` — Factory function that receives a raw `ClientInstance` and returns the typed scope object. Typically the `createScopeBindings` export from generated code.
771
+ - `config.scopes` — Factory function that receives a raw `ClientInstance` and returns the typed scope object. Typically the generated `createScopeBindings` export (or `create${ServiceName}Bindings` with `--service-name`).
772
772
  - `config.hooks` — Optional global hooks applied to every call. Can be overridden per call.
773
773
 
774
774
  ### Return Value
@@ -858,6 +858,7 @@ async function generateClient(options: {
858
858
  dryRun?: boolean
859
859
  namespaceTypes?: boolean
860
860
  selfContained?: boolean
861
+ serviceName?: string
861
862
  }): Promise<GeneratedFile[]>
862
863
  ```
863
864
 
@@ -880,11 +881,12 @@ async function generateClient(options: {
880
881
  | `--uncountable-words <list>` | Comma-separated words to skip singularization (requires `--namespace-types`) |
881
882
  | `--jsdoc` | Emit JSDoc comments from schema descriptions (requires `--namespace-types`) |
882
883
  | `--self-contained` | Emit `_types.ts` and `_client.ts` in output dir — no runtime dependency on `ts-procedures` |
884
+ | `--service-name <name>` | Customize generated identifiers for multi-service apps (e.g., `Auth` → `createAuthBindings`) |
883
885
 
884
886
  ### Generated Output
885
887
 
886
888
  - One `.ts` file per scope (e.g., `users.ts`, `events.ts`)
887
- - A root `index.ts` exporting `createScopeBindings`
889
+ - A root `index.ts` exporting `createScopeBindings` (or `create${ServiceName}Bindings` with `--service-name`)
888
890
  - Each scope file exports fully-typed callable functions and TypeScript types
889
891
  - With `--namespace-types`: types are wrapped in `export namespace Scope { export namespace Route { ... } }`
890
892
 
@@ -780,7 +780,7 @@ app.get('/docs', (c) => c.json(docs.toJSON()))
780
780
 
781
781
  // Then generate client:
782
782
  // npx ts-procedures-codegen --url http://localhost:3000/docs --out ./src/generated/api
783
- // Optional: --namespace-types --self-contained --depluralize --enum-style union
783
+ // Optional: --namespace-types --self-contained --service-name Auth --depluralize --enum-style union
784
784
  ```
785
785
 
786
786
  ---
@@ -316,9 +316,10 @@ npx ts-procedures-codegen --url http://localhost:3000/docs --out ./src/generated
316
316
  # --array-item-naming Item --uncountable-words criteria,alumni
317
317
  # --dry-run --watch --client-import-path @my-app/client
318
318
  # --config ./codegen.config.json --self-contained
319
+ # --service-name Auth
319
320
  ```
320
321
 
321
- Generates one `.ts` file per scope plus a root `index.ts` exporting `createScopeBindings`.
322
+ Generates one `.ts` file per scope plus a root `index.ts` exporting `createScopeBindings` (or `create${ServiceName}Bindings` with `--service-name`).
322
323
  Use `--namespace-types` to wrap types in nested TS namespaces (`Scope.Route.Params` instead of flat `RouteParams`).
323
324
  Note: ajsc formatting options (`--enum-style enum`, `--depluralize`, `--jsdoc`, etc.) only take effect with `--namespace-types`.
324
325
  Supports config file: `ts-procedures-codegen.config.json` (auto-loaded from CWD) or `--config <path>`.
@@ -316,9 +316,10 @@ npx ts-procedures-codegen --url http://localhost:3000/docs --out ./src/generated
316
316
  # --array-item-naming Item --uncountable-words criteria,alumni
317
317
  # --dry-run --watch --client-import-path @my-app/client
318
318
  # --config ./codegen.config.json --self-contained
319
+ # --service-name Auth
319
320
  ```
320
321
 
321
- Generates one `.ts` file per scope plus a root `index.ts` exporting `createScopeBindings`.
322
+ Generates one `.ts` file per scope plus a root `index.ts` exporting `createScopeBindings` (or `create${ServiceName}Bindings` with `--service-name`).
322
323
  Use `--namespace-types` to wrap types in nested TS namespaces (`Scope.Route.Params` instead of flat `RouteParams`).
323
324
  Note: ajsc formatting options (`--enum-style enum`, `--depluralize`, `--jsdoc`, etc.) only take effect with `--namespace-types`.
324
325
  Supports config file: `ts-procedures-codegen.config.json` (auto-loaded from CWD) or `--config <path>`.
@@ -11,6 +11,7 @@ export interface CodegenConfig {
11
11
  dryRun?: boolean;
12
12
  namespaceTypes?: boolean;
13
13
  selfContained?: boolean;
14
+ serviceName?: string;
14
15
  }
15
16
  export interface ParsedArgs {
16
17
  url?: string;
@@ -23,6 +24,7 @@ export interface ParsedArgs {
23
24
  dryRun: boolean;
24
25
  namespaceTypes: boolean;
25
26
  selfContained: boolean;
27
+ serviceName?: string;
26
28
  }
27
29
  /**
28
30
  * Loads a JSON config file. Returns undefined if the file doesn't exist.
@@ -48,6 +48,7 @@ export function parseArgs(argv, config) {
48
48
  let dryRun = config?.dryRun ?? false;
49
49
  let namespaceTypes = config?.namespaceTypes ?? false;
50
50
  let selfContained = config?.selfContained ?? false;
51
+ let serviceName = config?.serviceName;
51
52
  let configPath;
52
53
  for (let i = 0; i < argv.length; i++) {
53
54
  const arg = argv[i];
@@ -102,6 +103,9 @@ export function parseArgs(argv, config) {
102
103
  else if (arg === '--self-contained') {
103
104
  selfContained = true;
104
105
  }
106
+ else if (arg === '--service-name') {
107
+ serviceName = argv[++i];
108
+ }
105
109
  else if (arg === '--config') {
106
110
  configPath = argv[++i];
107
111
  }
@@ -125,6 +129,7 @@ export function parseArgs(argv, config) {
125
129
  dryRun,
126
130
  namespaceTypes,
127
131
  selfContained,
132
+ ...(serviceName !== undefined ? { serviceName } : {}),
128
133
  };
129
134
  }
130
135
  /**
@@ -153,6 +158,7 @@ async function runWithWatch(parsed) {
153
158
  dryRun: parsed.dryRun,
154
159
  namespaceTypes: parsed.namespaceTypes,
155
160
  selfContained: parsed.selfContained,
161
+ serviceName: parsed.serviceName,
156
162
  };
157
163
  let lastHash;
158
164
  const run = async () => {
@@ -174,6 +180,7 @@ async function runWithWatch(parsed) {
174
180
  dryRun: parsed.dryRun,
175
181
  namespaceTypes: parsed.namespaceTypes,
176
182
  selfContained: parsed.selfContained,
183
+ serviceName: parsed.serviceName,
177
184
  });
178
185
  console.log(`[ts-procedures-codegen] Generated client files → ${parsed.outDir}`);
179
186
  }
@@ -212,6 +219,7 @@ async function main() {
212
219
  dryRun: parsed.dryRun,
213
220
  namespaceTypes: parsed.namespaceTypes,
214
221
  selfContained: parsed.selfContained,
222
+ serviceName: parsed.serviceName,
215
223
  });
216
224
  if (parsed.dryRun) {
217
225
  console.log(`[ts-procedures-codegen] Dry run complete — ${result.length} files would be generated`);
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/codegen/bin/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../../src/codegen/bin/cli.ts"],"names":[],"mappings":"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"}
@@ -115,6 +115,14 @@ describe('parseArgs', () => {
115
115
  const result = parseArgs(['--url', 'http://x.com/docs', '--out', './out']);
116
116
  expect(result.selfContained).toBe(false);
117
117
  });
118
+ it('parses --service-name flag', () => {
119
+ const result = parseArgs(['--url', 'http://x.com/docs', '--out', './out', '--service-name', 'Auth']);
120
+ expect(result.serviceName).toBe('Auth');
121
+ });
122
+ it('defaults serviceName to undefined when not provided', () => {
123
+ const result = parseArgs(['--url', 'http://x.com/docs', '--out', './out']);
124
+ expect(result.serviceName).toBeUndefined();
125
+ });
118
126
  });
119
127
  describe('config file support', () => {
120
128
  it('parseArgs uses config as defaults', () => {
@@ -151,6 +159,24 @@ describe('config file support', () => {
151
159
  const result = parseArgs([], config);
152
160
  expect(result.selfContained).toBe(true);
153
161
  });
162
+ it('config file serviceName is used as default', () => {
163
+ const config = {
164
+ url: 'http://config.com/docs',
165
+ outDir: './config-out',
166
+ serviceName: 'Auth',
167
+ };
168
+ const result = parseArgs([], config);
169
+ expect(result.serviceName).toBe('Auth');
170
+ });
171
+ it('CLI --service-name overrides config serviceName', () => {
172
+ const config = {
173
+ url: 'http://config.com/docs',
174
+ outDir: './config-out',
175
+ serviceName: 'Auth',
176
+ };
177
+ const result = parseArgs(['--service-name', 'UsersApi'], config);
178
+ expect(result.serviceName).toBe('UsersApi');
179
+ });
154
180
  it('CLI ajsc flags merge with config ajsc', () => {
155
181
  const config = {
156
182
  url: 'http://config.com/docs',
@@ -1 +1 @@
1
- {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../../src/codegen/bin/cli.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.test.js","sourceRoot":"","sources":["../../../src/codegen/bin/cli.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAsB,MAAM,UAAU,CAAA;AAE3F,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,EAAE,CAAC,wBAAwB,EAAE,GAAG,EAAE;QAChC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAA;QACzF,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAA;QACrD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,aAAa,EAAE,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,QAAQ,EAAE,iBAAiB,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC,CAAA;QAC/E,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC,CAAA;QACnG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAC9C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;QAClC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,CAAC,CAAA;QAClG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC,CAAA;QAC3F,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;QACrF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACjC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACjC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC,CAAA;QAC3G,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACnD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAChE,MAAM,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,oCAAoC,CAAC,CAAA;IACjG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,SAAS,CAAC;YACvB,QAAQ,EAAE,iBAAiB;YAC3B,OAAO,EAAE,aAAa;YACtB,cAAc,EAAE,OAAO;YACvB,eAAe;YACf,SAAS;YACT,YAAY,EAAE,OAAO;SACtB,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC5C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,sBAAsB,EAAE,gBAAgB,CAAC,CAAC,CAAA;QACpH,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACxD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAClE,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,aAAa,EAAE,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC/B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC,CAAA;QACvF,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAClC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACnC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAA;QAC/F,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;QAC7B,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;QACrF,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;QACxD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,CAAC,CAAC,CAAA;QACzG,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1G,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC5D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,wBAAwB,CAAC,CAAC,CAAA;QAC3H,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;IACjF,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAC,CAAA;QAClH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;QACtC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,kBAAkB,CAAC,CAAC,CAAA;QAC9F,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;QACpC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,CAAC,CAAC,CAAA;QACpG,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;QAC7D,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAA;QAC1E,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,aAAa,EAAE,CAAA;IAC5C,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA;AAEF,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACnC,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,MAAM,GAAkB;YAC5B,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,cAAc;YACtB,cAAc,EAAE,IAAI;YACpB,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE;SAC/C,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAA;QACjD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;QAC1C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACxC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,MAAM,GAAkB;YAC5B,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,cAAc;YACtB,cAAc,EAAE,KAAK;SACtB,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,0BAA0B,EAAE,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,CAAC,EAAE,MAAM,CAAC,CAAA;QACvH,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC5C,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,MAAM,GAAkB;YAC5B,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,cAAc;YACtB,aAAa,EAAE,IAAI;SACpB,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,MAAM,GAAkB;YAC5B,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,MAAM;SACpB,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,MAAM,CAAC,CAAA;QACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACzC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,iDAAiD,EAAE,GAAG,EAAE;QACzD,MAAM,MAAM,GAAkB;YAC5B,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE,MAAM;SACpB,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,gBAAgB,EAAE,UAAU,CAAC,EAAE,MAAM,CAAC,CAAA;QAChE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAkB;YAC5B,GAAG,EAAE,wBAAwB;YAC7B,MAAM,EAAE,OAAO;YACf,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;SAC5B,CAAA;QACD,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAA;QACnD,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC3C,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,CAAC,iBAAiB,CAAC,CAAC,UAAU,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACpG,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,MAAM,CAAC,iBAAiB,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,EAAE,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAA;QACrC,MAAM,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAA;IAChC,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,sDAAsD,EAAE,KAAK,IAAI,EAAE;QACpE,MAAM,MAAM,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAA;IACnG,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -4,6 +4,7 @@ export interface EmitErrorsOptions {
4
4
  ajsc?: AjscOptions;
5
5
  clientImportPath?: string;
6
6
  namespaceTypes?: boolean;
7
+ serviceName?: string;
7
8
  }
8
9
  /**
9
10
  * Generates a TypeScript file with error type declarations from the DocEnvelope.errors array.
@@ -11,6 +12,8 @@ export interface EmitErrorsOptions {
11
12
  * Only errors with a `schema` property are included. If no errors have schemas,
12
13
  * returns `undefined` (no file generated).
13
14
  *
14
- * When `namespaceTypes` is true, error types are wrapped in `export namespace Errors { ... }`.
15
+ * When `namespaceTypes` is true, wraps in `export namespace Errors { ... }`
16
+ * (or `${ServiceName}Errors` with `serviceName`). The union type is similarly
17
+ * prefixed: `ProcedureErrorUnion` → `${ServiceName}ProcedureErrorUnion`.
15
18
  */
16
19
  export declare function emitErrorsFile(errors: ErrorDoc[], options?: EmitErrorsOptions): Promise<string | undefined>;
@@ -1,15 +1,21 @@
1
1
  import { jsonSchemaToTypeString, jsonSchemaToExtractedTypes } from './emit-types.js';
2
2
  import { CODEGEN_HEADER } from './constants.js';
3
+ import { toPascalCase } from './naming.js';
3
4
  /**
4
5
  * Generates a TypeScript file with error type declarations from the DocEnvelope.errors array.
5
6
  *
6
7
  * Only errors with a `schema` property are included. If no errors have schemas,
7
8
  * returns `undefined` (no file generated).
8
9
  *
9
- * When `namespaceTypes` is true, error types are wrapped in `export namespace Errors { ... }`.
10
+ * When `namespaceTypes` is true, wraps in `export namespace Errors { ... }`
11
+ * (or `${ServiceName}Errors` with `serviceName`). The union type is similarly
12
+ * prefixed: `ProcedureErrorUnion` → `${ServiceName}ProcedureErrorUnion`.
10
13
  */
11
14
  export async function emitErrorsFile(errors, options) {
12
- const { ajsc: ajscOpts, namespaceTypes = false } = options ?? {};
15
+ const { ajsc: ajscOpts, namespaceTypes = false, serviceName } = options ?? {};
16
+ const servicePrefix = serviceName ? toPascalCase(serviceName) : '';
17
+ const namespaceName = servicePrefix ? `${servicePrefix}Errors` : 'Errors';
18
+ const unionName = servicePrefix ? `${servicePrefix}ProcedureErrorUnion` : 'ProcedureErrorUnion';
13
19
  // Filter to only errors that have a schema
14
20
  const errorsWithSchema = errors.filter((e) => e.schema != null);
15
21
  if (errorsWithSchema.length === 0) {
@@ -17,7 +23,7 @@ export async function emitErrorsFile(errors, options) {
17
23
  }
18
24
  const typeLines = [];
19
25
  if (namespaceTypes) {
20
- typeLines.push('export namespace Errors {');
26
+ typeLines.push(`export namespace ${namespaceName} {`);
21
27
  for (const error of errorsWithSchema) {
22
28
  const result = await jsonSchemaToExtractedTypes(error.schema, ajscOpts);
23
29
  if (result != null) {
@@ -30,7 +36,7 @@ export async function emitErrorsFile(errors, options) {
30
36
  }
31
37
  }
32
38
  const unionMembers = errorsWithSchema.map((e) => e.name).join(' | ');
33
- typeLines.push(` export type ProcedureErrorUnion = ${unionMembers}`);
39
+ typeLines.push(` export type ${unionName} = ${unionMembers}`);
34
40
  typeLines.push('}');
35
41
  typeLines.push('');
36
42
  }
@@ -44,7 +50,7 @@ export async function emitErrorsFile(errors, options) {
44
50
  }
45
51
  }
46
52
  const unionMembers = errorsWithSchema.map((e) => e.name).join(' | ');
47
- typeLines.push(`export type ProcedureErrorUnion = ${unionMembers}`);
53
+ typeLines.push(`export type ${unionName} = ${unionMembers}`);
48
54
  typeLines.push('');
49
55
  }
50
56
  const body = typeLines.join('\n');
@@ -1 +1 @@
1
- {"version":3,"file":"emit-errors.js","sourceRoot":"","sources":["../../src/codegen/emit-errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emit-errors.js","sourceRoot":"","sources":["../../src/codegen/emit-errors.ts"],"names":[],"mappings":"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"}
@@ -106,6 +106,43 @@ describe('emitErrorsFile', () => {
106
106
  expect(result).toBeDefined();
107
107
  expect(result).toContain('export type ProcedureError =');
108
108
  });
109
+ describe('serviceName', () => {
110
+ it('uses Errors namespace by default', async () => {
111
+ const result = await emitErrorsFile([procedureErrorDoc, validationErrorDoc], { namespaceTypes: true });
112
+ expect(result).toContain('export namespace Errors {');
113
+ });
114
+ it('prefixes namespace with serviceName when provided', async () => {
115
+ const result = await emitErrorsFile([procedureErrorDoc, validationErrorDoc], { namespaceTypes: true, serviceName: 'Auth' });
116
+ expect(result).toContain('export namespace AuthErrors {');
117
+ expect(result).not.toContain('export namespace Errors {');
118
+ });
119
+ it('PascalCases a kebab-case serviceName for namespace', async () => {
120
+ const result = await emitErrorsFile([procedureErrorDoc], { namespaceTypes: true, serviceName: 'user-service' });
121
+ expect(result).toContain('export namespace UserServiceErrors {');
122
+ });
123
+ it('does not affect namespace when namespaceTypes is false', async () => {
124
+ const result = await emitErrorsFile([procedureErrorDoc], { namespaceTypes: false, serviceName: 'Auth' });
125
+ expect(result).toBeDefined();
126
+ expect(result).not.toContain('namespace');
127
+ });
128
+ it('prefixes ProcedureErrorUnion in flat mode when serviceName is set', async () => {
129
+ const result = await emitErrorsFile([procedureErrorDoc, validationErrorDoc], { namespaceTypes: false, serviceName: 'Auth' });
130
+ expect(result).toBeDefined();
131
+ expect(result).toContain('export type AuthProcedureErrorUnion = ProcedureError | ProcedureValidationError');
132
+ expect(result).not.toContain('export type ProcedureErrorUnion =');
133
+ });
134
+ it('prefixes ProcedureErrorUnion inside namespace when serviceName is set', async () => {
135
+ const result = await emitErrorsFile([procedureErrorDoc], { namespaceTypes: true, serviceName: 'Auth' });
136
+ expect(result).toBeDefined();
137
+ expect(result).toContain('AuthProcedureErrorUnion');
138
+ expect(result).not.toMatch(/\bexport type ProcedureErrorUnion\b/);
139
+ });
140
+ it('leaves ProcedureErrorUnion unprefixed when no serviceName', async () => {
141
+ const result = await emitErrorsFile([procedureErrorDoc], { namespaceTypes: false });
142
+ expect(result).toBeDefined();
143
+ expect(result).toContain('export type ProcedureErrorUnion = ProcedureError');
144
+ });
145
+ });
109
146
  describe('namespaceTypes', () => {
110
147
  it('wraps error types in export namespace Errors', async () => {
111
148
  const result = await emitErrorsFile([procedureErrorDoc, validationErrorDoc], { namespaceTypes: true });
@@ -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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"}
@@ -2,9 +2,11 @@ import type { ScopeGroup } from './group-routes.js';
2
2
  export interface EmitIndexOptions {
3
3
  clientImportPath?: string;
4
4
  hasErrors?: boolean;
5
+ serviceName?: string;
5
6
  }
6
7
  /**
7
8
  * Generates a barrel index file that re-exports all scope files and provides
8
- * a `createScopeBindings` factory function.
9
+ * a factory function (`createScopeBindings`, or `create${ServiceName}Bindings`
10
+ * when `serviceName` is set).
9
11
  */
10
12
  export declare function emitIndexFile(groups: ScopeGroup[], options?: EmitIndexOptions): string;
@@ -1,24 +1,17 @@
1
1
  import { CODEGEN_HEADER } from './constants.js';
2
- // ---------------------------------------------------------------------------
3
- // Helpers
4
- // ---------------------------------------------------------------------------
5
- /** Converts a string to PascalCase (splits on whitespace, hyphens, underscores). */
6
- function toPascalCase(str) {
7
- return str
8
- .split(/[\s\-_]+/)
9
- .map((word) => word.charAt(0).toUpperCase() + word.slice(1))
10
- .join('');
11
- }
2
+ import { toPascalCase } from './naming.js';
12
3
  /** Derives the bind function name from a camelCase scope identifier. */
13
4
  function bindFunctionName(camelCase) {
14
5
  return `bind${toPascalCase(camelCase)}Scope`;
15
6
  }
16
7
  /**
17
8
  * Generates a barrel index file that re-exports all scope files and provides
18
- * a `createScopeBindings` factory function.
9
+ * a factory function (`createScopeBindings`, or `create${ServiceName}Bindings`
10
+ * when `serviceName` is set).
19
11
  */
20
12
  export function emitIndexFile(groups, options) {
21
- const { clientImportPath = 'ts-procedures/client', hasErrors = false } = options ?? {};
13
+ const { clientImportPath = 'ts-procedures/client', hasErrors = false, serviceName } = options ?? {};
14
+ const factoryName = serviceName ? `create${toPascalCase(serviceName)}Bindings` : 'createScopeBindings';
22
15
  const bindImports = groups
23
16
  .map((g) => `import { ${bindFunctionName(g.camelCase)} } from './${g.scopeKey}'`)
24
17
  .join('\n');
@@ -37,7 +30,7 @@ export function emitIndexFile(groups, options) {
37
30
  '',
38
31
  reExports,
39
32
  '',
40
- 'export function createScopeBindings(client: ClientInstance) {',
33
+ `export function ${factoryName}(client: ClientInstance) {`,
41
34
  ' return {',
42
35
  scopeBindings,
43
36
  ' }',
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"emit-index.js","sourceRoot":"","sources":["../../src/codegen/emit-index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE1C,wEAAwE;AACxE,SAAS,gBAAgB,CAAC,SAAiB;IACzC,OAAO,OAAO,YAAY,CAAC,SAAS,CAAC,OAAO,CAAA;AAC9C,CAAC;AAYD;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,MAAoB,EAAE,OAA0B;IAC5E,MAAM,EAAE,gBAAgB,GAAG,sBAAsB,EAAE,SAAS,GAAG,KAAK,EAAE,WAAW,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;IACnG,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,SAAS,YAAY,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAA;IACtG,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,mBAAmB,WAAW,4BAA4B;QAC1D,YAAY;QACZ,aAAa;QACb,KAAK;QACL,GAAG;QACH,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC"}
@@ -68,6 +68,29 @@ describe('emitIndexFile', () => {
68
68
  expect(importIdx).toBeLessThan(reExportIdx);
69
69
  expect(reExportIdx).toBeLessThan(bindIdx);
70
70
  });
71
+ describe('serviceName', () => {
72
+ it('uses createScopeBindings when serviceName is not provided', () => {
73
+ const output = emitIndexFile([usersGroup]);
74
+ expect(output).toContain('export function createScopeBindings(client: ClientInstance)');
75
+ });
76
+ it('uses create${ServiceName}Bindings when serviceName is provided', () => {
77
+ const output = emitIndexFile([usersGroup], { serviceName: 'Auth' });
78
+ expect(output).toContain('export function createAuthBindings(client: ClientInstance)');
79
+ expect(output).not.toContain('createScopeBindings');
80
+ });
81
+ it('PascalCases a kebab-case serviceName', () => {
82
+ const output = emitIndexFile([usersGroup], { serviceName: 'auth-service' });
83
+ expect(output).toContain('export function createAuthServiceBindings(client: ClientInstance)');
84
+ });
85
+ it('PascalCases an underscore-separated serviceName', () => {
86
+ const output = emitIndexFile([usersGroup], { serviceName: 'users_api' });
87
+ expect(output).toContain('export function createUsersApiBindings(client: ClientInstance)');
88
+ });
89
+ it('preserves already-PascalCased serviceName', () => {
90
+ const output = emitIndexFile([usersGroup, billingGroup], { serviceName: 'UsersApi' });
91
+ expect(output).toContain('export function createUsersApiBindings(client: ClientInstance)');
92
+ });
93
+ });
71
94
  describe('clientImportPath', () => {
72
95
  it('uses custom clientImportPath in import statement', () => {
73
96
  const output = emitIndexFile([usersGroup], { clientImportPath: '@my-app/client' });