@silkweave/typegen 3.1.0 → 3.2.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/build/index.mjs +1 -1
- package/build/index.mjs.map +1 -1
- package/package.json +2 -2
package/build/index.mjs
CHANGED
|
@@ -42,7 +42,7 @@ const typeHandlers = {
|
|
|
42
42
|
return factory.createTypeLiteralNode(members);
|
|
43
43
|
},
|
|
44
44
|
record: (def) => {
|
|
45
|
-
return factory.
|
|
45
|
+
return factory.createTypeReferenceNode("Record", [zodToTs(def.keyType), zodToTs(def.valueType)]);
|
|
46
46
|
},
|
|
47
47
|
tuple: (def) => factory.createTupleTypeNode(def.items.map(zodToTs)),
|
|
48
48
|
union: (def) => factory.createUnionTypeNode(def.options.map(zodToTs)),
|
package/build/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["f","f","f"],"sources":["../src/lib/zodToTs.ts","../src/lib/generateDts.ts","../src/lib/generateTrpcRouter.ts","../src/adapter/typegen.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport ts, { factory as f } from 'typescript'\nimport { z } from 'zod/v4'\n\nexport function zodToTs(schema: z.ZodTypeAny): ts.TypeNode {\n const def = (schema as any)._zod.def\n const handler = typeHandlers[def.type as string]\n return handler ? handler(def) : f.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword)\n}\n\nconst keyword = (kind: ts.KeywordTypeSyntaxKind) => () =>\n f.createKeywordTypeNode(kind)\n\ntype TypeHandler = (def: any) => ts.TypeNode\n\nconst typeHandlers: Record<string, TypeHandler> = {\n string: keyword(ts.SyntaxKind.StringKeyword),\n number: keyword(ts.SyntaxKind.NumberKeyword),\n nan: keyword(ts.SyntaxKind.NumberKeyword),\n bigint: keyword(ts.SyntaxKind.BigIntKeyword),\n boolean: keyword(ts.SyntaxKind.BooleanKeyword),\n undefined: keyword(ts.SyntaxKind.UndefinedKeyword),\n void: keyword(ts.SyntaxKind.VoidKeyword),\n any: keyword(ts.SyntaxKind.AnyKeyword),\n unknown: keyword(ts.SyntaxKind.UnknownKeyword),\n never: keyword(ts.SyntaxKind.NeverKeyword),\n symbol: keyword(ts.SyntaxKind.SymbolKeyword),\n date: () => f.createTypeReferenceNode('Date'),\n null: () => f.createLiteralTypeNode(f.createNull()),\n file: () => f.createTypeReferenceNode('File'),\n\n literal: (def) => {\n const members = def.values.map(literalToTypeNode)\n return members.length === 1 ? members[0] : f.createUnionTypeNode(members)\n },\n\n enum: (def) => {\n return f.createUnionTypeNode(Object.values(def.entries).map(literalToTypeNode))\n },\n\n array: (def) => f.createArrayTypeNode(zodToTs(def.element)),\n\n object: (def) => {\n const members: ts.TypeElement[] = Object.entries(def.shape as Record<string, z.ZodTypeAny>)\n .map(([key, memberSchema]) => {\n const isOptional = (memberSchema as any)._zod.optout\n return f.createPropertySignature(\n undefined,\n identifierOrString(key),\n isOptional ? f.createToken(ts.SyntaxKind.QuestionToken) : undefined,\n zodToTs(memberSchema)\n )\n })\n\n if (def.catchall) {\n members.push(indexSignature(zodToTs(def.catchall)))\n }\n\n return f.createTypeLiteralNode(members)\n },\n\n record: (def) => {\n return f.createTypeLiteralNode([indexSignature(zodToTs(def.valueType), zodToTs(def.keyType))])\n },\n\n tuple: (def) => f.createTupleTypeNode((def.items as z.ZodTypeAny[]).map(zodToTs)),\n union: (def) => f.createUnionTypeNode((def.options as z.ZodTypeAny[]).map(zodToTs)),\n intersection: (def) => f.createIntersectionTypeNode([zodToTs(def.left), zodToTs(def.right)]),\n\n optional: (def) => f.createUnionTypeNode([\n zodToTs(def.innerType),\n f.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword)\n ]),\n\n nullable: (def) => f.createUnionTypeNode([\n zodToTs(def.innerType),\n f.createLiteralTypeNode(f.createNull())\n ]),\n\n default: (def) => zodToTs(def.innerType),\n prefault: (def) => zodToTs(def.innerType),\n catch: (def) => zodToTs(def.innerType),\n lazy: (def) => zodToTs(def.getter()),\n pipe: (def) => zodToTs(def.out),\n\n readonly: (def) => {\n const inner = zodToTs(def.innerType)\n if (ts.isArrayTypeNode(inner) || ts.isTupleTypeNode(inner)) {\n return f.createTypeOperatorNode(ts.SyntaxKind.ReadonlyKeyword, inner)\n }\n return inner\n },\n\n set: (def) => f.createTypeReferenceNode('Set', [zodToTs(def.valueType)]),\n map: (def) => f.createTypeReferenceNode('Map', [zodToTs(def.keyType), zodToTs(def.valueType)]),\n promise: (def) => f.createTypeReferenceNode('Promise', [zodToTs(def.innerType)])\n}\n\nexport function printNode(node: ts.Node): string {\n const sourceFile = ts.createSourceFile('typegen.d.ts', '', ts.ScriptTarget.Latest, false, ts.ScriptKind.TS)\n const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed, omitTrailingSemicolon: true })\n return printer.printNode(ts.EmitHint.Unspecified, node, sourceFile)\n}\n\nfunction indexSignature(valueType: ts.TypeNode, keyType?: ts.TypeNode): ts.IndexSignatureDeclaration {\n return f.createIndexSignature(\n undefined,\n [f.createParameterDeclaration(undefined, undefined, 'key', undefined, keyType ?? f.createKeywordTypeNode(ts.SyntaxKind.StringKeyword))],\n valueType\n )\n}\n\nconst identifierRE = /^[$A-Z_a-z][\\w$]*$/\n\nfunction identifierOrString(name: string) {\n return identifierRE.test(name)\n ? f.createIdentifier(name)\n : f.createStringLiteral(name)\n}\n\nfunction literalToTypeNode(value: unknown): ts.TypeNode {\n switch (typeof value) {\n case 'string':\n return f.createLiteralTypeNode(f.createStringLiteral(value))\n case 'number':\n return value < 0\n ? f.createLiteralTypeNode(f.createPrefixUnaryExpression(ts.SyntaxKind.MinusToken, f.createNumericLiteral(Math.abs(value))))\n : f.createLiteralTypeNode(f.createNumericLiteral(value))\n case 'bigint':\n return f.createLiteralTypeNode(f.createBigIntLiteral(`${value}n`))\n case 'boolean':\n return f.createLiteralTypeNode(value ? f.createTrue() : f.createFalse())\n default:\n return f.createLiteralTypeNode(f.createNull())\n }\n}\n","import ts, { factory as f } from 'typescript'\nimport { type Action, isStreamingAction } from '@silkweave/core'\nimport { pascalCase } from 'change-case'\nimport { zodToTs, printNode } from './zodToTs.js'\n\nexport function generateDts(actions: Action[]): string {\n const statements: ts.Statement[] = []\n\n for (const action of actions) {\n const name = pascalCase(action.name)\n\n statements.push(\n f.createInterfaceDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n `${name}Input`,\n undefined,\n undefined,\n membersFromTypeLiteral(zodToTs(action.input))\n )\n )\n\n if (isStreamingAction(action) && action.chunk) {\n // Streaming action: emit `${name}Chunk` and `${name}Output = Chunk[]`.\n statements.push(\n f.createTypeAliasDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n `${name}Chunk`,\n undefined,\n zodToTs(action.chunk)\n ),\n f.createTypeAliasDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n `${name}Output`,\n undefined,\n f.createArrayTypeNode(f.createTypeReferenceNode(`${name}Chunk`))\n )\n )\n } else if (action.output) {\n statements.push(\n f.createInterfaceDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n `${name}Output`,\n undefined,\n undefined,\n membersFromTypeLiteral(zodToTs(action.output))\n )\n )\n }\n }\n\n return statements.map(printNode).join('\\n\\n') + '\\n'\n}\n\nfunction membersFromTypeLiteral(node: ts.TypeNode): ts.TypeElement[] {\n if (ts.isTypeLiteralNode(node)) {\n return [...node.members]\n }\n return [f.createIndexSignature(\n undefined,\n [f.createParameterDeclaration(undefined, undefined, 'key', undefined, f.createKeywordTypeNode(ts.SyntaxKind.StringKeyword))],\n node\n )]\n}\n","import { type Action, isStreamingAction } from '@silkweave/core'\nimport { camelCase } from 'change-case'\nimport ts, { factory as f } from 'typescript'\nimport { printNode, zodToTs } from './zodToTs.js'\n\nconst TRPC_PROCEDURE_TYPES = ['AnyTRPCRootTypes', 'TRPCBuiltRouter', 'TRPCMutationProcedure', 'TRPCQueryProcedure', 'TRPCSubscriptionProcedure'] as const\n\n/**\n * Emit an `AppRouter` type alias compatible with `createTRPCClient<AppRouter>()`.\n *\n * The router mirrors what `@silkweave/trpc`'s `buildRouter()` builds at runtime\n * and what `InferTrpcRouter<S>` infers at the type level: each action name\n * collapses to camelCase, queries become `TRPCQueryProcedure`, mutations\n * `TRPCMutationProcedure`, with the action's input/output types embedded.\n */\nexport function generateTrpcRouter(actions: Action[]): string {\n const importDecl = f.createImportDeclaration(\n undefined,\n f.createImportClause(\n true,\n undefined,\n f.createNamedImports(TRPC_PROCEDURE_TYPES.map((name) =>\n f.createImportSpecifier(false, undefined, f.createIdentifier(name))\n ))\n ),\n f.createStringLiteral('@trpc/server')\n )\n\n const rootTypeAlias = f.createTypeAliasDeclaration(\n undefined,\n f.createIdentifier('TrpcRootTypes'),\n undefined,\n f.createIntersectionTypeNode([\n f.createTypeLiteralNode([\n f.createPropertySignature(undefined, 'ctx', undefined, f.createTypeReferenceNode('object')),\n f.createPropertySignature(undefined, 'meta', undefined, f.createTypeReferenceNode('object')),\n f.createPropertySignature(undefined, 'errorShape', undefined, f.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword)),\n f.createPropertySignature(undefined, 'transformer', undefined, f.createLiteralTypeNode(f.createFalse()))\n ]),\n f.createTypeReferenceNode('AnyTRPCRootTypes')\n ])\n )\n\n const procedures = actions.map((action) => {\n const streaming = isStreamingAction(action)\n const procedureType = streaming\n ? 'TRPCSubscriptionProcedure'\n : (action.kind === 'query' ? 'TRPCQueryProcedure' : 'TRPCMutationProcedure')\n const outputNode = streaming\n ? (action.chunk ? zodToTs(action.chunk) : f.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword))\n : (action.output ? zodToTs(action.output) : f.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword))\n return f.createPropertySignature(\n undefined,\n camelCase(action.name),\n undefined,\n f.createTypeReferenceNode(procedureType, [\n f.createTypeLiteralNode([\n f.createPropertySignature(undefined, 'meta', undefined, f.createTypeReferenceNode('object')),\n f.createPropertySignature(undefined, 'input', undefined, zodToTs(action.input)),\n f.createPropertySignature(undefined, 'output', undefined, outputNode)\n ])\n ])\n )\n })\n\n const routerAlias = f.createTypeAliasDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n f.createIdentifier('AppRouter'),\n undefined,\n f.createTypeReferenceNode('TRPCBuiltRouter', [\n f.createTypeReferenceNode('TrpcRootTypes'),\n f.createTypeLiteralNode(procedures)\n ])\n )\n\n return [importDecl, rootTypeAlias, routerAlias].map(printNode).join('\\n\\n') + '\\n'\n}\n","import { AdapterFactory } from '@silkweave/core'\nimport { mkdir, writeFile } from 'node:fs/promises'\nimport { dirname, resolve } from 'node:path'\nimport { generateDts } from '../lib/generateDts.js'\nimport { generateTrpcRouter } from '../lib/generateTrpcRouter.js'\n\nexport type TypegenFormat = 'interfaces' | 'trpc-router' | 'all'\n\nexport interface TypegenAdapterOptions {\n /** Output file path for the generated `.d.ts` file. Resolved against `process.cwd()`. Parent directories are created automatically. */\n path: string\n /**\n * What to emit:\n * - `'interfaces'` - `{Name}Input` / `{Name}Output` interfaces per action (REST/MCP consumers)\n * - `'trpc-router'` - `AppRouter` type alias for `createTRPCClient<AppRouter>()`\n * - `'all'` (default) - both\n */\n format?: TypegenFormat\n}\n\nexport function renderTypegen(actions: Parameters<typeof generateDts>[0], format: TypegenFormat = 'all'): string {\n // `generateTrpcRouter` emits a top-level `import` line, so it must come\n // first when both blocks are produced.\n const blocks: string[] = []\n if (format === 'trpc-router' || format === 'all') { blocks.push(generateTrpcRouter(actions)) }\n if (format === 'interfaces' || format === 'all') { blocks.push(generateDts(actions)) }\n return blocks.join('\\n')\n}\n\nexport const typegen: AdapterFactory<TypegenAdapterOptions> = ({ path, format = 'all' }) => {\n return (_, context) => {\n context.set('adapter', 'typegen')\n return {\n context,\n allActions: true,\n start: async (actions) => {\n const output = renderTypegen(actions, format)\n const target = resolve(path)\n await mkdir(dirname(target), { recursive: true })\n await writeFile(target, output, 'utf-8')\n console.info(`typegen: wrote ${actions.length} action types to ${target}`)\n },\n stop: async () => { /* noop */ }\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["f","f","f"],"sources":["../src/lib/zodToTs.ts","../src/lib/generateDts.ts","../src/lib/generateTrpcRouter.ts","../src/adapter/typegen.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport ts, { factory as f } from 'typescript'\nimport { z } from 'zod/v4'\n\nexport function zodToTs(schema: z.ZodTypeAny): ts.TypeNode {\n const def = (schema as any)._zod.def\n const handler = typeHandlers[def.type as string]\n return handler ? handler(def) : f.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword)\n}\n\nconst keyword = (kind: ts.KeywordTypeSyntaxKind) => () =>\n f.createKeywordTypeNode(kind)\n\ntype TypeHandler = (def: any) => ts.TypeNode\n\nconst typeHandlers: Record<string, TypeHandler> = {\n string: keyword(ts.SyntaxKind.StringKeyword),\n number: keyword(ts.SyntaxKind.NumberKeyword),\n nan: keyword(ts.SyntaxKind.NumberKeyword),\n bigint: keyword(ts.SyntaxKind.BigIntKeyword),\n boolean: keyword(ts.SyntaxKind.BooleanKeyword),\n undefined: keyword(ts.SyntaxKind.UndefinedKeyword),\n void: keyword(ts.SyntaxKind.VoidKeyword),\n any: keyword(ts.SyntaxKind.AnyKeyword),\n unknown: keyword(ts.SyntaxKind.UnknownKeyword),\n never: keyword(ts.SyntaxKind.NeverKeyword),\n symbol: keyword(ts.SyntaxKind.SymbolKeyword),\n date: () => f.createTypeReferenceNode('Date'),\n null: () => f.createLiteralTypeNode(f.createNull()),\n file: () => f.createTypeReferenceNode('File'),\n\n literal: (def) => {\n const members = def.values.map(literalToTypeNode)\n return members.length === 1 ? members[0] : f.createUnionTypeNode(members)\n },\n\n enum: (def) => {\n return f.createUnionTypeNode(Object.values(def.entries).map(literalToTypeNode))\n },\n\n array: (def) => f.createArrayTypeNode(zodToTs(def.element)),\n\n object: (def) => {\n const members: ts.TypeElement[] = Object.entries(def.shape as Record<string, z.ZodTypeAny>)\n .map(([key, memberSchema]) => {\n const isOptional = (memberSchema as any)._zod.optout\n return f.createPropertySignature(\n undefined,\n identifierOrString(key),\n isOptional ? f.createToken(ts.SyntaxKind.QuestionToken) : undefined,\n zodToTs(memberSchema)\n )\n })\n\n if (def.catchall) {\n members.push(indexSignature(zodToTs(def.catchall)))\n }\n\n return f.createTypeLiteralNode(members)\n },\n\n record: (def) => {\n // `Record<K, V>` rather than `{ [key: K]: V }` - an index signature whose\n // key type is a string-literal union (z.record(z.enum([...]), V)) is invalid\n // TS (TS1337), whereas Record accepts any keyof-compatible key type.\n return f.createTypeReferenceNode('Record', [zodToTs(def.keyType), zodToTs(def.valueType)])\n },\n\n tuple: (def) => f.createTupleTypeNode((def.items as z.ZodTypeAny[]).map(zodToTs)),\n union: (def) => f.createUnionTypeNode((def.options as z.ZodTypeAny[]).map(zodToTs)),\n intersection: (def) => f.createIntersectionTypeNode([zodToTs(def.left), zodToTs(def.right)]),\n\n optional: (def) => f.createUnionTypeNode([\n zodToTs(def.innerType),\n f.createKeywordTypeNode(ts.SyntaxKind.UndefinedKeyword)\n ]),\n\n nullable: (def) => f.createUnionTypeNode([\n zodToTs(def.innerType),\n f.createLiteralTypeNode(f.createNull())\n ]),\n\n default: (def) => zodToTs(def.innerType),\n prefault: (def) => zodToTs(def.innerType),\n catch: (def) => zodToTs(def.innerType),\n lazy: (def) => zodToTs(def.getter()),\n pipe: (def) => zodToTs(def.out),\n\n readonly: (def) => {\n const inner = zodToTs(def.innerType)\n if (ts.isArrayTypeNode(inner) || ts.isTupleTypeNode(inner)) {\n return f.createTypeOperatorNode(ts.SyntaxKind.ReadonlyKeyword, inner)\n }\n return inner\n },\n\n set: (def) => f.createTypeReferenceNode('Set', [zodToTs(def.valueType)]),\n map: (def) => f.createTypeReferenceNode('Map', [zodToTs(def.keyType), zodToTs(def.valueType)]),\n promise: (def) => f.createTypeReferenceNode('Promise', [zodToTs(def.innerType)])\n}\n\nexport function printNode(node: ts.Node): string {\n const sourceFile = ts.createSourceFile('typegen.d.ts', '', ts.ScriptTarget.Latest, false, ts.ScriptKind.TS)\n const printer = ts.createPrinter({ newLine: ts.NewLineKind.LineFeed, omitTrailingSemicolon: true })\n return printer.printNode(ts.EmitHint.Unspecified, node, sourceFile)\n}\n\nfunction indexSignature(valueType: ts.TypeNode, keyType?: ts.TypeNode): ts.IndexSignatureDeclaration {\n return f.createIndexSignature(\n undefined,\n [f.createParameterDeclaration(undefined, undefined, 'key', undefined, keyType ?? f.createKeywordTypeNode(ts.SyntaxKind.StringKeyword))],\n valueType\n )\n}\n\nconst identifierRE = /^[$A-Z_a-z][\\w$]*$/\n\nfunction identifierOrString(name: string) {\n return identifierRE.test(name)\n ? f.createIdentifier(name)\n : f.createStringLiteral(name)\n}\n\nfunction literalToTypeNode(value: unknown): ts.TypeNode {\n switch (typeof value) {\n case 'string':\n return f.createLiteralTypeNode(f.createStringLiteral(value))\n case 'number':\n return value < 0\n ? f.createLiteralTypeNode(f.createPrefixUnaryExpression(ts.SyntaxKind.MinusToken, f.createNumericLiteral(Math.abs(value))))\n : f.createLiteralTypeNode(f.createNumericLiteral(value))\n case 'bigint':\n return f.createLiteralTypeNode(f.createBigIntLiteral(`${value}n`))\n case 'boolean':\n return f.createLiteralTypeNode(value ? f.createTrue() : f.createFalse())\n default:\n return f.createLiteralTypeNode(f.createNull())\n }\n}\n","import ts, { factory as f } from 'typescript'\nimport { type Action, isStreamingAction } from '@silkweave/core'\nimport { pascalCase } from 'change-case'\nimport { zodToTs, printNode } from './zodToTs.js'\n\nexport function generateDts(actions: Action[]): string {\n const statements: ts.Statement[] = []\n\n for (const action of actions) {\n const name = pascalCase(action.name)\n\n statements.push(\n f.createInterfaceDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n `${name}Input`,\n undefined,\n undefined,\n membersFromTypeLiteral(zodToTs(action.input))\n )\n )\n\n if (isStreamingAction(action) && action.chunk) {\n // Streaming action: emit `${name}Chunk` and `${name}Output = Chunk[]`.\n statements.push(\n f.createTypeAliasDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n `${name}Chunk`,\n undefined,\n zodToTs(action.chunk)\n ),\n f.createTypeAliasDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n `${name}Output`,\n undefined,\n f.createArrayTypeNode(f.createTypeReferenceNode(`${name}Chunk`))\n )\n )\n } else if (action.output) {\n statements.push(\n f.createInterfaceDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n `${name}Output`,\n undefined,\n undefined,\n membersFromTypeLiteral(zodToTs(action.output))\n )\n )\n }\n }\n\n return statements.map(printNode).join('\\n\\n') + '\\n'\n}\n\nfunction membersFromTypeLiteral(node: ts.TypeNode): ts.TypeElement[] {\n if (ts.isTypeLiteralNode(node)) {\n return [...node.members]\n }\n return [f.createIndexSignature(\n undefined,\n [f.createParameterDeclaration(undefined, undefined, 'key', undefined, f.createKeywordTypeNode(ts.SyntaxKind.StringKeyword))],\n node\n )]\n}\n","import { type Action, isStreamingAction } from '@silkweave/core'\nimport { camelCase } from 'change-case'\nimport ts, { factory as f } from 'typescript'\nimport { printNode, zodToTs } from './zodToTs.js'\n\nconst TRPC_PROCEDURE_TYPES = ['AnyTRPCRootTypes', 'TRPCBuiltRouter', 'TRPCMutationProcedure', 'TRPCQueryProcedure', 'TRPCSubscriptionProcedure'] as const\n\n/**\n * Emit an `AppRouter` type alias compatible with `createTRPCClient<AppRouter>()`.\n *\n * The router mirrors what `@silkweave/trpc`'s `buildRouter()` builds at runtime\n * and what `InferTrpcRouter<S>` infers at the type level: each action name\n * collapses to camelCase, queries become `TRPCQueryProcedure`, mutations\n * `TRPCMutationProcedure`, with the action's input/output types embedded.\n */\nexport function generateTrpcRouter(actions: Action[]): string {\n const importDecl = f.createImportDeclaration(\n undefined,\n f.createImportClause(\n true,\n undefined,\n f.createNamedImports(TRPC_PROCEDURE_TYPES.map((name) =>\n f.createImportSpecifier(false, undefined, f.createIdentifier(name))\n ))\n ),\n f.createStringLiteral('@trpc/server')\n )\n\n const rootTypeAlias = f.createTypeAliasDeclaration(\n undefined,\n f.createIdentifier('TrpcRootTypes'),\n undefined,\n f.createIntersectionTypeNode([\n f.createTypeLiteralNode([\n f.createPropertySignature(undefined, 'ctx', undefined, f.createTypeReferenceNode('object')),\n f.createPropertySignature(undefined, 'meta', undefined, f.createTypeReferenceNode('object')),\n f.createPropertySignature(undefined, 'errorShape', undefined, f.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword)),\n f.createPropertySignature(undefined, 'transformer', undefined, f.createLiteralTypeNode(f.createFalse()))\n ]),\n f.createTypeReferenceNode('AnyTRPCRootTypes')\n ])\n )\n\n const procedures = actions.map((action) => {\n const streaming = isStreamingAction(action)\n const procedureType = streaming\n ? 'TRPCSubscriptionProcedure'\n : (action.kind === 'query' ? 'TRPCQueryProcedure' : 'TRPCMutationProcedure')\n const outputNode = streaming\n ? (action.chunk ? zodToTs(action.chunk) : f.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword))\n : (action.output ? zodToTs(action.output) : f.createKeywordTypeNode(ts.SyntaxKind.UnknownKeyword))\n return f.createPropertySignature(\n undefined,\n camelCase(action.name),\n undefined,\n f.createTypeReferenceNode(procedureType, [\n f.createTypeLiteralNode([\n f.createPropertySignature(undefined, 'meta', undefined, f.createTypeReferenceNode('object')),\n f.createPropertySignature(undefined, 'input', undefined, zodToTs(action.input)),\n f.createPropertySignature(undefined, 'output', undefined, outputNode)\n ])\n ])\n )\n })\n\n const routerAlias = f.createTypeAliasDeclaration(\n [f.createModifier(ts.SyntaxKind.ExportKeyword)],\n f.createIdentifier('AppRouter'),\n undefined,\n f.createTypeReferenceNode('TRPCBuiltRouter', [\n f.createTypeReferenceNode('TrpcRootTypes'),\n f.createTypeLiteralNode(procedures)\n ])\n )\n\n return [importDecl, rootTypeAlias, routerAlias].map(printNode).join('\\n\\n') + '\\n'\n}\n","import { AdapterFactory } from '@silkweave/core'\nimport { mkdir, writeFile } from 'node:fs/promises'\nimport { dirname, resolve } from 'node:path'\nimport { generateDts } from '../lib/generateDts.js'\nimport { generateTrpcRouter } from '../lib/generateTrpcRouter.js'\n\nexport type TypegenFormat = 'interfaces' | 'trpc-router' | 'all'\n\nexport interface TypegenAdapterOptions {\n /** Output file path for the generated `.d.ts` file. Resolved against `process.cwd()`. Parent directories are created automatically. */\n path: string\n /**\n * What to emit:\n * - `'interfaces'` - `{Name}Input` / `{Name}Output` interfaces per action (REST/MCP consumers)\n * - `'trpc-router'` - `AppRouter` type alias for `createTRPCClient<AppRouter>()`\n * - `'all'` (default) - both\n */\n format?: TypegenFormat\n}\n\nexport function renderTypegen(actions: Parameters<typeof generateDts>[0], format: TypegenFormat = 'all'): string {\n // `generateTrpcRouter` emits a top-level `import` line, so it must come\n // first when both blocks are produced.\n const blocks: string[] = []\n if (format === 'trpc-router' || format === 'all') { blocks.push(generateTrpcRouter(actions)) }\n if (format === 'interfaces' || format === 'all') { blocks.push(generateDts(actions)) }\n return blocks.join('\\n')\n}\n\nexport const typegen: AdapterFactory<TypegenAdapterOptions> = ({ path, format = 'all' }) => {\n return (_, context) => {\n context.set('adapter', 'typegen')\n return {\n context,\n allActions: true,\n start: async (actions) => {\n const output = renderTypegen(actions, format)\n const target = resolve(path)\n await mkdir(dirname(target), { recursive: true })\n await writeFile(target, output, 'utf-8')\n console.info(`typegen: wrote ${actions.length} action types to ${target}`)\n },\n stop: async () => { /* noop */ }\n }\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@silkweave/typegen",
|
|
3
|
-
"version": "3.1
|
|
3
|
+
"version": "3.2.1",
|
|
4
4
|
"description": "Silkweave Type Generator",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://www.silkweave.dev",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"change-case": "^5.4.4",
|
|
30
30
|
"zod": "^3.25.0",
|
|
31
|
-
"@silkweave/core": "3.1
|
|
31
|
+
"@silkweave/core": "3.2.1"
|
|
32
32
|
},
|
|
33
33
|
"peerDependencies": {
|
|
34
34
|
"typescript": ">=5.0.0"
|