zenstack-trpc 0.1.1 → 0.1.3
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/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/router-generator.d.ts +89 -15
- package/dist/router-generator.d.ts.map +1 -1
- package/dist/router-generator.js +8 -12
- package/package.json +9 -9
package/dist/index.d.ts
CHANGED
|
@@ -26,6 +26,6 @@
|
|
|
26
26
|
*
|
|
27
27
|
* @packageDocumentation
|
|
28
28
|
*/
|
|
29
|
-
export { createZenStackRouter, type ZenStackRouter, type TypedRouterCaller, type TypedModelProcedures, type TRPCInstance, } from "./router-generator.js";
|
|
29
|
+
export { createZenStackRouter, type ZenStackRouter, type ZenStackRouterRecord, type TRPCModelProcedures, type TypedRouterCaller, type TypedModelProcedures, type TRPCInstance, } from "./router-generator.js";
|
|
30
30
|
export { createModelSchemas, createWhereSchema, createCreateDataSchema, createUpdateDataSchema, createUniqueWhereSchema, createSelectSchema, createIncludeSchema, createOrderBySchema, } from "./zod-schemas.js";
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAGH,OAAO,EACL,oBAAoB,EACpB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EACzB,KAAK,YAAY,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,kBAAkB,CAAC"}
|
|
@@ -121,34 +121,108 @@ export interface TRPCInstance {
|
|
|
121
121
|
* The router follows the pattern: router.modelName.operation
|
|
122
122
|
* Example: router.user.findMany(), router.post.create()
|
|
123
123
|
*
|
|
124
|
-
* For proper typing on the caller, use the TypedRouterCaller type:
|
|
125
|
-
*
|
|
126
124
|
* @example
|
|
127
125
|
* ```ts
|
|
128
|
-
* import { createZenStackRouter,
|
|
126
|
+
* import { createZenStackRouter, ZenStackRouter } from 'zenstack-trpc';
|
|
129
127
|
* import { initTRPC } from '@trpc/server';
|
|
130
128
|
* import { schema, SchemaType } from './zenstack/schema';
|
|
131
129
|
*
|
|
132
130
|
* // Create your own tRPC instance with your context
|
|
133
|
-
* const t = initTRPC.context<{ db:
|
|
131
|
+
* const t = initTRPC.context<{ db: typeof dbClient }>().create();
|
|
134
132
|
*
|
|
135
|
-
* // Generate the router
|
|
133
|
+
* // Generate the router with full type inference
|
|
136
134
|
* const appRouter = createZenStackRouter(schema, t);
|
|
137
135
|
*
|
|
138
|
-
* //
|
|
139
|
-
* const caller = appRouter.createCaller({ db }) as TypedRouterCaller<SchemaType>;
|
|
140
|
-
*
|
|
141
|
-
* // Types are fully inferred based on your query!
|
|
142
|
-
* const users = await caller.user.findMany();
|
|
143
|
-
* // ^? { id: string, email: string, name: string | null, ... }[]
|
|
144
|
-
*
|
|
136
|
+
* // Export the typed router for clients
|
|
145
137
|
* export type AppRouter = typeof appRouter;
|
|
138
|
+
*
|
|
139
|
+
* // Client usage (with full type inference):
|
|
140
|
+
* // const client = createTRPCClient<AppRouter>({ ... });
|
|
141
|
+
* // const users = await client.user.findMany.query(); // Fully typed!
|
|
146
142
|
* ```
|
|
147
143
|
*/
|
|
148
|
-
export declare function createZenStackRouter<Schema extends SchemaDef
|
|
144
|
+
export declare function createZenStackRouter<Schema extends SchemaDef, TContext extends {
|
|
145
|
+
db: any;
|
|
146
|
+
}>(schema: Schema, t: TRPCInstance): ZenStackRouter<Schema, TContext>;
|
|
147
|
+
/**
|
|
148
|
+
* Type for a query procedure with proper input/output typing
|
|
149
|
+
* Matches tRPC's internal structure for type inference
|
|
150
|
+
*/
|
|
151
|
+
type TypedQueryProcedure<TInput, TOutput> = {
|
|
152
|
+
_def: {
|
|
153
|
+
$types: {
|
|
154
|
+
input: TInput;
|
|
155
|
+
output: TOutput;
|
|
156
|
+
};
|
|
157
|
+
procedure: true;
|
|
158
|
+
type: 'query';
|
|
159
|
+
meta: unknown;
|
|
160
|
+
experimental_caller: boolean;
|
|
161
|
+
};
|
|
162
|
+
};
|
|
163
|
+
/**
|
|
164
|
+
* Type for a mutation procedure with proper input/output typing
|
|
165
|
+
* Matches tRPC's internal structure for type inference
|
|
166
|
+
*/
|
|
167
|
+
type TypedMutationProcedure<TInput, TOutput> = {
|
|
168
|
+
_def: {
|
|
169
|
+
$types: {
|
|
170
|
+
input: TInput;
|
|
171
|
+
output: TOutput;
|
|
172
|
+
};
|
|
173
|
+
procedure: true;
|
|
174
|
+
type: 'mutation';
|
|
175
|
+
meta: unknown;
|
|
176
|
+
experimental_caller: boolean;
|
|
177
|
+
};
|
|
178
|
+
};
|
|
149
179
|
/**
|
|
150
|
-
* Type
|
|
180
|
+
* Type for a single model's tRPC procedures (for client inference)
|
|
181
|
+
* This maps each operation to its tRPC procedure type with proper input/output
|
|
151
182
|
*/
|
|
152
|
-
export type
|
|
183
|
+
export type TRPCModelProcedures<Schema extends SchemaDef, Model extends GetModels<Schema>, TContext> = {
|
|
184
|
+
findMany: TypedQueryProcedure<FindManyArgs<Schema, Model> | undefined, SimplifiedPlainResult<Schema, Model, {}>[]>;
|
|
185
|
+
findUnique: TypedQueryProcedure<FindUniqueArgs<Schema, Model>, SimplifiedPlainResult<Schema, Model, {}> | null>;
|
|
186
|
+
findFirst: TypedQueryProcedure<FindFirstArgs<Schema, Model> | undefined, SimplifiedPlainResult<Schema, Model, {}> | null>;
|
|
187
|
+
create: TypedMutationProcedure<CreateArgs<Schema, Model>, SimplifiedPlainResult<Schema, Model, {}>>;
|
|
188
|
+
createMany: TypedMutationProcedure<CreateManyArgs<Schema, Model>, {
|
|
189
|
+
count: number;
|
|
190
|
+
}>;
|
|
191
|
+
update: TypedMutationProcedure<UpdateArgs<Schema, Model>, SimplifiedPlainResult<Schema, Model, {}>>;
|
|
192
|
+
updateMany: TypedMutationProcedure<UpdateManyArgs<Schema, Model>, {
|
|
193
|
+
count: number;
|
|
194
|
+
}>;
|
|
195
|
+
upsert: TypedMutationProcedure<UpsertArgs<Schema, Model>, SimplifiedPlainResult<Schema, Model, {}>>;
|
|
196
|
+
delete: TypedMutationProcedure<DeleteArgs<Schema, Model>, SimplifiedPlainResult<Schema, Model, {}>>;
|
|
197
|
+
deleteMany: TypedMutationProcedure<DeleteManyArgs<Schema, Model>, {
|
|
198
|
+
count: number;
|
|
199
|
+
}>;
|
|
200
|
+
count: TypedQueryProcedure<CountArgs<Schema, Model> | undefined, number>;
|
|
201
|
+
aggregate: TypedQueryProcedure<AggregateArgs<Schema, Model>, any>;
|
|
202
|
+
groupBy: TypedQueryProcedure<GroupByArgs<Schema, Model>, any[]>;
|
|
203
|
+
};
|
|
204
|
+
/**
|
|
205
|
+
* Type for the full router record that tRPC uses for inference
|
|
206
|
+
*/
|
|
207
|
+
export type ZenStackRouterRecord<Schema extends SchemaDef, TContext> = {
|
|
208
|
+
[K in GetModels<Schema> as Uncapitalize<K>]: TRPCModelProcedures<Schema, K, TContext>;
|
|
209
|
+
};
|
|
210
|
+
/**
|
|
211
|
+
* The typed router type that clients can use for proper inference
|
|
212
|
+
*/
|
|
213
|
+
export type ZenStackRouter<Schema extends SchemaDef, TContext = any> = {
|
|
214
|
+
_def: {
|
|
215
|
+
_config: {
|
|
216
|
+
$types: {
|
|
217
|
+
ctx: TContext;
|
|
218
|
+
meta: object;
|
|
219
|
+
errorShape: any;
|
|
220
|
+
transformer: false;
|
|
221
|
+
};
|
|
222
|
+
};
|
|
223
|
+
record: ZenStackRouterRecord<Schema, TContext>;
|
|
224
|
+
};
|
|
225
|
+
createCaller: (ctx: TContext) => TypedRouterCaller<Schema>;
|
|
226
|
+
};
|
|
153
227
|
export {};
|
|
154
228
|
//# sourceMappingURL=router-generator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router-generator.d.ts","sourceRoot":"","sources":["../src/router-generator.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EACd,aAAa,EACb,UAAU,EACV,cAAc,EACd,UAAU,EACV,cAAc,EACd,UAAU,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,aAAa,EACb,WAAW,EACX,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,SAAS,GAAG,MAAM,KAAK,GAAG,MAAM,IAAI,EAAE,GACzE,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAC5B,CAAC,CAAC;AAEN;;;;GAIG;AACH,MAAM,WAAW,oBAAoB,CACnC,MAAM,SAAS,SAAS,EACxB,KAAK,SAAS,SAAS,CAAC,MAAM,CAAC;IAE/B;;;;;OAKG;IACH,QAAQ,CAAC,CAAC,SAAS,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,EAC5C,KAAK,CAAC,EAAE,CAAC,GACR,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAEtD;;OAEG;IACH,UAAU,CAAC,CAAC,SAAS,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,EAChD,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE3D;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAC9C,KAAK,CAAC,EAAE,CAAC,GACR,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAE3D;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD;;OAEG;IACH,UAAU,CACR,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9B;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD;;OAEG;IACH,UAAU,CACR,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9B;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD;;OAEG;IACH,MAAM,CAAC,CAAC,SAAS,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EACxC,KAAK,EAAE,CAAC,GACP,OAAO,CAAC,qBAAqB,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpD;;OAEG;IACH,UAAU,CACR,KAAK,EAAE,cAAc,CAAC,MAAM,EAAE,KAAK,CAAC,GACnC,OAAO,CAAC;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAE9B;;OAEG;IACH,KAAK,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzD;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAE7D;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;CAC5D;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,iBAAiB,CAAC,MAAM,SAAS,SAAS,IAAI;KACvD,CAAC,IAAI,SAAS,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,oBAAoB,CAAC,MAAM,EAAE,CAAC,CAAC;CAC7E,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE;QACT,KAAK,EAAE,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,KAAK;YAC5B,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;gBAAE,GAAG,EAAE,GAAG,CAAC;gBAAC,KAAK,EAAE,GAAG,CAAA;aAAE,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;YAC1E,QAAQ,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE;gBAAE,GAAG,EAAE,GAAG,CAAC;gBAAC,KAAK,EAAE,GAAG,CAAA;aAAE,KAAK,OAAO,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;SAC9E,CAAC;KACH,CAAC;IACF,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,GAAG,CAAC;CAClD;AAqDD
|
|
1
|
+
{"version":3,"file":"router-generator.d.ts","sourceRoot":"","sources":["../src/router-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/router-generator.js
CHANGED
|
@@ -49,28 +49,24 @@ function createModelProcedures(schema, modelName, t) {
|
|
|
49
49
|
* The router follows the pattern: router.modelName.operation
|
|
50
50
|
* Example: router.user.findMany(), router.post.create()
|
|
51
51
|
*
|
|
52
|
-
* For proper typing on the caller, use the TypedRouterCaller type:
|
|
53
|
-
*
|
|
54
52
|
* @example
|
|
55
53
|
* ```ts
|
|
56
|
-
* import { createZenStackRouter,
|
|
54
|
+
* import { createZenStackRouter, ZenStackRouter } from 'zenstack-trpc';
|
|
57
55
|
* import { initTRPC } from '@trpc/server';
|
|
58
56
|
* import { schema, SchemaType } from './zenstack/schema';
|
|
59
57
|
*
|
|
60
58
|
* // Create your own tRPC instance with your context
|
|
61
|
-
* const t = initTRPC.context<{ db:
|
|
59
|
+
* const t = initTRPC.context<{ db: typeof dbClient }>().create();
|
|
62
60
|
*
|
|
63
|
-
* // Generate the router
|
|
61
|
+
* // Generate the router with full type inference
|
|
64
62
|
* const appRouter = createZenStackRouter(schema, t);
|
|
65
63
|
*
|
|
66
|
-
* //
|
|
67
|
-
* const caller = appRouter.createCaller({ db }) as TypedRouterCaller<SchemaType>;
|
|
68
|
-
*
|
|
69
|
-
* // Types are fully inferred based on your query!
|
|
70
|
-
* const users = await caller.user.findMany();
|
|
71
|
-
* // ^? { id: string, email: string, name: string | null, ... }[]
|
|
72
|
-
*
|
|
64
|
+
* // Export the typed router for clients
|
|
73
65
|
* export type AppRouter = typeof appRouter;
|
|
66
|
+
*
|
|
67
|
+
* // Client usage (with full type inference):
|
|
68
|
+
* // const client = createTRPCClient<AppRouter>({ ... });
|
|
69
|
+
* // const users = await client.user.findMany.query(); // Fully typed!
|
|
74
70
|
* ```
|
|
75
71
|
*/
|
|
76
72
|
export function createZenStackRouter(schema, t) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zenstack-trpc",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Auto-generate type-safe tRPC routers from ZenStack V3 schemas",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -17,13 +17,6 @@
|
|
|
17
17
|
"README.md",
|
|
18
18
|
"LICENSE"
|
|
19
19
|
],
|
|
20
|
-
"scripts": {
|
|
21
|
-
"build": "tsc -p tsconfig.build.json",
|
|
22
|
-
"prepublishOnly": "pnpm run build",
|
|
23
|
-
"test": "vitest run",
|
|
24
|
-
"test:watch": "vitest",
|
|
25
|
-
"typecheck": "tsc --noEmit"
|
|
26
|
-
},
|
|
27
20
|
"keywords": [
|
|
28
21
|
"zenstack",
|
|
29
22
|
"trpc",
|
|
@@ -55,6 +48,7 @@
|
|
|
55
48
|
"zod": ">=3.0.0 || >=4.0.0"
|
|
56
49
|
},
|
|
57
50
|
"devDependencies": {
|
|
51
|
+
"@trpc/client": "^11.8.1",
|
|
58
52
|
"@trpc/server": "^11.8.1",
|
|
59
53
|
"@types/better-sqlite3": "^7.6.13",
|
|
60
54
|
"@types/node": "^25.0.3",
|
|
@@ -67,5 +61,11 @@
|
|
|
67
61
|
"typescript": "^5.9.3",
|
|
68
62
|
"vitest": "^4.0.16",
|
|
69
63
|
"zod": "^4.3.5"
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"build": "tsc -p tsconfig.build.json",
|
|
67
|
+
"test": "vitest run",
|
|
68
|
+
"test:watch": "vitest",
|
|
69
|
+
"typecheck": "tsc --noEmit"
|
|
70
70
|
}
|
|
71
|
-
}
|
|
71
|
+
}
|