zodvex 0.6.0 → 0.6.1-beta.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/dist/boundaryHelpers.d.ts.map +1 -1
- package/dist/builders.d.ts +4 -4
- package/dist/builders.d.ts.map +1 -1
- package/dist/cli/index.js +70 -72
- package/dist/cli/index.js.map +1 -1
- package/dist/client/index.js +16 -17
- package/dist/client/index.js.map +1 -1
- package/dist/codec.d.ts +5 -4
- package/dist/codec.d.ts.map +1 -1
- package/dist/codegen/discover.d.ts +4 -4
- package/dist/codegen/discover.d.ts.map +1 -1
- package/dist/codegen/extractCodec.d.ts +5 -5
- package/dist/codegen/extractCodec.d.ts.map +1 -1
- package/dist/codegen/generate.d.ts +2 -2
- package/dist/codegen/generate.d.ts.map +1 -1
- package/dist/codegen/index.js +70 -72
- package/dist/codegen/index.js.map +1 -1
- package/dist/codegen/zodToSource.d.ts +3 -3
- package/dist/codegen/zodToSource.d.ts.map +1 -1
- package/dist/core/index.d.ts +0 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +135 -575
- package/dist/core/index.js.map +1 -1
- package/dist/custom.d.ts +6 -5
- package/dist/custom.d.ts.map +1 -1
- package/dist/db.d.ts +3 -3
- package/dist/db.d.ts.map +1 -1
- package/dist/ids.d.ts +3 -2
- package/dist/ids.d.ts.map +1 -1
- package/dist/index.js +213 -630
- package/dist/index.js.map +1 -1
- package/dist/mapping/core.d.ts +3 -3
- package/dist/mapping/core.d.ts.map +1 -1
- package/dist/mapping/handlers/enum.d.ts +2 -2
- package/dist/mapping/handlers/enum.d.ts.map +1 -1
- package/dist/mapping/handlers/nullable.d.ts +2 -2
- package/dist/mapping/handlers/nullable.d.ts.map +1 -1
- package/dist/mapping/handlers/record.d.ts +2 -2
- package/dist/mapping/handlers/record.d.ts.map +1 -1
- package/dist/mapping/handlers/union.d.ts +3 -3
- package/dist/mapping/handlers/union.d.ts.map +1 -1
- package/dist/mapping/types.d.ts +25 -25
- package/dist/mapping/types.d.ts.map +1 -1
- package/dist/mapping/utils.d.ts +2 -2
- package/dist/mapping/utils.d.ts.map +1 -1
- package/dist/meta.d.ts +8 -8
- package/dist/meta.d.ts.map +1 -1
- package/dist/mini/index.d.ts +36 -0
- package/dist/mini/index.d.ts.map +1 -0
- package/dist/mini/index.js +1067 -0
- package/dist/mini/index.js.map +1 -0
- package/dist/model.d.ts +5 -4
- package/dist/model.d.ts.map +1 -1
- package/dist/normalizeCodecPaths.d.ts +4 -3
- package/dist/normalizeCodecPaths.d.ts.map +1 -1
- package/dist/react/index.js +16 -17
- package/dist/react/index.js.map +1 -1
- package/dist/registry.d.ts +4 -4
- package/dist/registry.d.ts.map +1 -1
- package/dist/results.d.ts +3 -2
- package/dist/results.d.ts.map +1 -1
- package/dist/rules.d.ts.map +1 -1
- package/dist/schema.d.ts +18 -18
- package/dist/schema.d.ts.map +1 -1
- package/dist/schemaHelpers.d.ts +12 -11
- package/dist/schemaHelpers.d.ts.map +1 -1
- package/dist/server/index.js +183 -162
- package/dist/server/index.js.map +1 -1
- package/dist/serverUtils.d.ts +2 -1
- package/dist/serverUtils.d.ts.map +1 -1
- package/dist/tables.d.ts +10 -10
- package/dist/tables.d.ts.map +1 -1
- package/dist/types.d.ts +23 -14
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +5 -4
- package/dist/utils.d.ts.map +1 -1
- package/dist/wrappers.d.ts +7 -7
- package/dist/wrappers.d.ts.map +1 -1
- package/dist/zod-core.d.ts +2 -0
- package/dist/zod-core.d.ts.map +1 -0
- package/dist/zx.d.ts +2 -1
- package/dist/zx.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/boundaryHelpers.ts +2 -1
- package/src/builders.ts +19 -18
- package/src/codec.ts +30 -24
- package/src/codegen/discover.ts +45 -36
- package/src/codegen/extractCodec.ts +19 -13
- package/src/codegen/generate.ts +28 -29
- package/src/codegen/zodToSource.ts +56 -42
- package/src/core/index.ts +0 -2
- package/src/custom.ts +16 -14
- package/src/db.ts +12 -14
- package/src/ids.ts +4 -3
- package/src/mapping/core.ts +67 -64
- package/src/mapping/handlers/enum.ts +4 -3
- package/src/mapping/handlers/nullable.ts +9 -9
- package/src/mapping/handlers/record.ts +22 -27
- package/src/mapping/handlers/union.ts +12 -9
- package/src/mapping/types.ts +113 -91
- package/src/mapping/utils.ts +5 -6
- package/src/meta.ts +8 -8
- package/src/mini/index.ts +100 -0
- package/src/model.ts +37 -32
- package/src/normalizeCodecPaths.ts +33 -25
- package/src/registry.ts +7 -6
- package/src/results.ts +3 -2
- package/src/rules.ts +3 -2
- package/src/schema.ts +18 -17
- package/src/schemaHelpers.ts +43 -31
- package/src/serverUtils.ts +6 -5
- package/src/tables.ts +38 -36
- package/src/types.ts +25 -24
- package/src/utils.ts +48 -34
- package/src/wrappers.ts +51 -43
- package/src/zod-core.ts +70 -0
- package/src/zx.ts +2 -1
- package/dist/__type-tests__/infer-returns.d.ts +0 -2
- package/dist/__type-tests__/infer-returns.d.ts.map +0 -1
- package/dist/__type-tests__/zodTable-inference.d.ts +0 -2
- package/dist/__type-tests__/zodTable-inference.d.ts.map +0 -1
- package/dist/transform/index.d.ts +0 -26
- package/dist/transform/index.d.ts.map +0 -1
- package/dist/transform/index.js +0 -442
- package/dist/transform/index.js.map +0 -1
- package/dist/transform/transform.d.ts +0 -47
- package/dist/transform/transform.d.ts.map +0 -1
- package/dist/transform/traverse.d.ts +0 -76
- package/dist/transform/traverse.d.ts.map +0 -1
- package/dist/transform/types.d.ts +0 -115
- package/dist/transform/types.d.ts.map +0 -1
- package/src/__type-tests__/infer-returns.ts +0 -178
- package/src/__type-tests__/zodTable-inference.ts +0 -713
- package/src/transform/index.ts +0 -38
- package/src/transform/transform.ts +0 -409
- package/src/transform/traverse.ts +0 -333
- package/src/transform/types.ts +0 -128
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"boundaryHelpers.d.ts","sourceRoot":"","sources":["../src/boundaryHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"boundaryHelpers.d.ts","sourceRoot":"","sources":["../src/boundaryHelpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAwB1C;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CACjC,CAAA;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,CAAC,CAAC,QAAQ;IAC/C,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;gBAEd,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO;CAMhF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,sBAAsB;sBAgBlE,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,GAAG,KAAG,GAAG;wBA4BpD,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,cAAc,GAAG,KAAG,GAAG;EAsBxF;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAA"}
|
package/dist/builders.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { FunctionVisibility, RegisteredAction, RegisteredMutation, RegisteredQuery } from 'convex/server';
|
|
2
2
|
import type { PropertyValidators } from 'convex/values';
|
|
3
3
|
import type { Customization } from 'convex-helpers/server/customFunctions';
|
|
4
|
-
import { z } from 'zod';
|
|
5
4
|
import { type CustomBuilder } from './custom';
|
|
6
5
|
import type { ExtractCtx, ExtractVisibility, InferHandlerReturns, InferReturns, ZodToConvexArgs } from './types';
|
|
6
|
+
import { $ZodType } from './zod-core';
|
|
7
7
|
/**
|
|
8
8
|
* Creates a reusable query builder from a Convex query builder.
|
|
9
9
|
* Returns a builder function that accepts Convex-style config objects with args, handler, and returns.
|
|
@@ -27,7 +27,7 @@ import type { ExtractCtx, ExtractVisibility, InferHandlerReturns, InferReturns,
|
|
|
27
27
|
* })
|
|
28
28
|
* ```
|
|
29
29
|
*/
|
|
30
|
-
export declare function zQueryBuilder<Builder extends (fn: any) => any>(builder: Builder): <A extends
|
|
30
|
+
export declare function zQueryBuilder<Builder extends (fn: any) => any>(builder: Builder): <A extends $ZodType | Record<string, $ZodType>, R extends $ZodType | undefined = undefined, Visibility extends FunctionVisibility = ExtractVisibility<Builder>>(config: {
|
|
31
31
|
args?: A;
|
|
32
32
|
handler: (ctx: ExtractCtx<Builder>, args: ZodToConvexArgs<A extends undefined ? Record<string, never> : A>) => InferHandlerReturns<R> | Promise<InferHandlerReturns<R>>;
|
|
33
33
|
returns?: R;
|
|
@@ -55,7 +55,7 @@ export declare function zQueryBuilder<Builder extends (fn: any) => any>(builder:
|
|
|
55
55
|
* })
|
|
56
56
|
* ```
|
|
57
57
|
*/
|
|
58
|
-
export declare function zMutationBuilder<Builder extends (fn: any) => any>(builder: Builder): <A extends
|
|
58
|
+
export declare function zMutationBuilder<Builder extends (fn: any) => any>(builder: Builder): <A extends $ZodType | Record<string, $ZodType>, R extends $ZodType | undefined = undefined, Visibility extends FunctionVisibility = ExtractVisibility<Builder>>(config: {
|
|
59
59
|
args?: A;
|
|
60
60
|
handler: (ctx: ExtractCtx<Builder>, args: ZodToConvexArgs<A extends undefined ? Record<string, never> : A>) => InferHandlerReturns<R> | Promise<InferHandlerReturns<R>>;
|
|
61
61
|
returns?: R;
|
|
@@ -83,7 +83,7 @@ export declare function zMutationBuilder<Builder extends (fn: any) => any>(build
|
|
|
83
83
|
* })
|
|
84
84
|
* ```
|
|
85
85
|
*/
|
|
86
|
-
export declare function zActionBuilder<Builder extends (fn: any) => any>(builder: Builder): <A extends
|
|
86
|
+
export declare function zActionBuilder<Builder extends (fn: any) => any>(builder: Builder): <A extends $ZodType | Record<string, $ZodType>, R extends $ZodType | undefined = undefined, Visibility extends FunctionVisibility = ExtractVisibility<Builder>>(config: {
|
|
87
87
|
args?: A;
|
|
88
88
|
handler: (ctx: ExtractCtx<Builder>, args: ZodToConvexArgs<A extends undefined ? Record<string, never> : A>) => InferHandlerReturns<R> | Promise<InferHandlerReturns<R>>;
|
|
89
89
|
returns?: R;
|
package/dist/builders.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAA;AACtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../src/builders.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import fs2 from 'fs';
|
|
3
3
|
import path3 from 'path';
|
|
4
4
|
import { globSync } from 'tinyglobby';
|
|
5
|
-
import {
|
|
5
|
+
import { $ZodCodec, $ZodNumber, $ZodCustom, $ZodOptional, $ZodNullable, $ZodObject, $ZodUnion, $ZodArray, $ZodRecord, $ZodTuple, $ZodString, $ZodBoolean, $ZodNull, $ZodUndefined, $ZodAny, $ZodEnum, $ZodLiteral } from 'zod/v4/core';
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
@@ -313,18 +313,18 @@ function writeGeneratedStubs(convexDir2) {
|
|
|
313
313
|
}
|
|
314
314
|
};
|
|
315
315
|
}
|
|
316
|
+
|
|
317
|
+
// src/codegen/extractCodec.ts
|
|
316
318
|
function findCodec(schema) {
|
|
317
319
|
let current = schema;
|
|
318
320
|
for (let i = 0; i < 10; i++) {
|
|
319
|
-
if (current instanceof
|
|
320
|
-
const
|
|
321
|
-
const isZxDate = def?.in instanceof z.ZodNumber && def?.out instanceof z.ZodCustom;
|
|
321
|
+
if (current instanceof $ZodCodec) {
|
|
322
|
+
const isZxDate = current._zod.def.in instanceof $ZodNumber && current._zod.def.out instanceof $ZodCustom;
|
|
322
323
|
if (isZxDate) return void 0;
|
|
323
324
|
return current;
|
|
324
325
|
}
|
|
325
|
-
if (current instanceof
|
|
326
|
-
|
|
327
|
-
current = def.innerType;
|
|
326
|
+
if (current instanceof $ZodOptional || current instanceof $ZodNullable) {
|
|
327
|
+
current = current._zod.def.innerType;
|
|
328
328
|
continue;
|
|
329
329
|
}
|
|
330
330
|
break;
|
|
@@ -347,17 +347,15 @@ function walkSchemaRecursive(schema, accessPath, visited, seenCodecs, results) {
|
|
|
347
347
|
let current = schema;
|
|
348
348
|
let currentPath = accessPath;
|
|
349
349
|
for (let i = 0; i < 10; i++) {
|
|
350
|
-
if (current instanceof
|
|
351
|
-
|
|
352
|
-
current = def2.innerType;
|
|
350
|
+
if (current instanceof $ZodOptional || current instanceof $ZodNullable) {
|
|
351
|
+
current = current._zod.def.innerType;
|
|
353
352
|
currentPath += "._zod.def.innerType";
|
|
354
353
|
} else {
|
|
355
354
|
break;
|
|
356
355
|
}
|
|
357
356
|
}
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
const shape = def?.shape;
|
|
357
|
+
if (current instanceof $ZodObject) {
|
|
358
|
+
const shape = current._zod.def.shape;
|
|
361
359
|
if (shape) {
|
|
362
360
|
for (const [field, fieldSchema] of Object.entries(shape)) {
|
|
363
361
|
walkSchemaRecursive(
|
|
@@ -369,8 +367,8 @@ function walkSchemaRecursive(schema, accessPath, visited, seenCodecs, results) {
|
|
|
369
367
|
);
|
|
370
368
|
}
|
|
371
369
|
}
|
|
372
|
-
} else if (current instanceof
|
|
373
|
-
const options = def
|
|
370
|
+
} else if (current instanceof $ZodUnion) {
|
|
371
|
+
const options = current._zod.def.options;
|
|
374
372
|
if (options) {
|
|
375
373
|
for (let i = 0; i < options.length; i++) {
|
|
376
374
|
walkSchemaRecursive(
|
|
@@ -382,13 +380,13 @@ function walkSchemaRecursive(schema, accessPath, visited, seenCodecs, results) {
|
|
|
382
380
|
);
|
|
383
381
|
}
|
|
384
382
|
}
|
|
385
|
-
} else if (current instanceof
|
|
386
|
-
const element = def
|
|
383
|
+
} else if (current instanceof $ZodArray) {
|
|
384
|
+
const element = current._zod.def.element;
|
|
387
385
|
if (element) {
|
|
388
386
|
walkSchemaRecursive(element, `${currentPath}._zod.def.element`, visited, seenCodecs, results);
|
|
389
387
|
}
|
|
390
|
-
} else if (current instanceof
|
|
391
|
-
const valueType = def
|
|
388
|
+
} else if (current instanceof $ZodRecord) {
|
|
389
|
+
const valueType = current._zod.def.valueType;
|
|
392
390
|
if (valueType) {
|
|
393
391
|
walkSchemaRecursive(
|
|
394
392
|
valueType,
|
|
@@ -398,8 +396,8 @@ function walkSchemaRecursive(schema, accessPath, visited, seenCodecs, results) {
|
|
|
398
396
|
results
|
|
399
397
|
);
|
|
400
398
|
}
|
|
401
|
-
} else if (current instanceof
|
|
402
|
-
const items = def
|
|
399
|
+
} else if (current instanceof $ZodTuple) {
|
|
400
|
+
const items = current._zod.def.items;
|
|
403
401
|
if (items) {
|
|
404
402
|
for (let i = 0; i < items.length; i++) {
|
|
405
403
|
walkSchemaRecursive(
|
|
@@ -528,9 +526,8 @@ async function discoverModules(convexDir2) {
|
|
|
528
526
|
});
|
|
529
527
|
}
|
|
530
528
|
}
|
|
531
|
-
if (value instanceof
|
|
532
|
-
const
|
|
533
|
-
const isZxDate = def?.in instanceof z.ZodNumber && def?.out instanceof z.ZodCustom;
|
|
529
|
+
if (value instanceof $ZodCodec) {
|
|
530
|
+
const isZxDate = value._zod.def.in instanceof $ZodNumber && value._zod.def.out instanceof $ZodCustom;
|
|
534
531
|
if (!isZxDate) {
|
|
535
532
|
if (!codecs.some((c) => c.schema === value)) {
|
|
536
533
|
codecs.push({
|
|
@@ -554,22 +551,23 @@ async function discoverModules(convexDir2) {
|
|
|
554
551
|
cleanupStubs();
|
|
555
552
|
}
|
|
556
553
|
}
|
|
554
|
+
|
|
555
|
+
// src/codegen/zodToSource.ts
|
|
557
556
|
function zodToSource(schema, ctx) {
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
return `${zodToSource(def.innerType, ctx)}.optional()`;
|
|
557
|
+
if (schema instanceof $ZodOptional) {
|
|
558
|
+
return `${zodToSource(schema._zod.def.innerType, ctx)}.optional()`;
|
|
561
559
|
}
|
|
562
|
-
if (schema instanceof
|
|
563
|
-
return `${zodToSource(def.innerType, ctx)}.nullable()`;
|
|
560
|
+
if (schema instanceof $ZodNullable) {
|
|
561
|
+
return `${zodToSource(schema._zod.def.innerType, ctx)}.nullable()`;
|
|
564
562
|
}
|
|
565
|
-
if (schema instanceof
|
|
563
|
+
if (schema instanceof $ZodString && schema.description?.startsWith("convexId:")) {
|
|
566
564
|
const tableName = schema.description.slice("convexId:".length);
|
|
567
565
|
return `zx.id("${tableName}")`;
|
|
568
566
|
}
|
|
569
|
-
if (schema instanceof
|
|
567
|
+
if (schema instanceof $ZodCodec && schema._zod.def.in instanceof $ZodNumber && schema._zod.def.out instanceof $ZodCustom) {
|
|
570
568
|
return "zx.date()";
|
|
571
569
|
}
|
|
572
|
-
if (schema instanceof
|
|
570
|
+
if (schema instanceof $ZodCodec) {
|
|
573
571
|
if (ctx?.codecMap) {
|
|
574
572
|
const ref = ctx.codecMap.get(schema);
|
|
575
573
|
if (ref) {
|
|
@@ -580,46 +578,47 @@ function zodToSource(schema, ctx) {
|
|
|
580
578
|
return ref.exportName;
|
|
581
579
|
}
|
|
582
580
|
}
|
|
583
|
-
const wireSource = zodToSource(def.in, ctx);
|
|
581
|
+
const wireSource = zodToSource(schema._zod.def.in, ctx);
|
|
584
582
|
ctx?.undiscoverableCodecs?.push({ fieldPath: "unknown" });
|
|
585
583
|
return `${wireSource} /* codec: transforms lost */`;
|
|
586
584
|
}
|
|
587
|
-
if (schema instanceof
|
|
588
|
-
if (schema instanceof
|
|
589
|
-
if (schema instanceof
|
|
590
|
-
if (schema instanceof
|
|
591
|
-
if (schema instanceof
|
|
592
|
-
if (schema instanceof
|
|
593
|
-
if (schema instanceof
|
|
594
|
-
const shape = def.shape;
|
|
585
|
+
if (schema instanceof $ZodString) return "z.string()";
|
|
586
|
+
if (schema instanceof $ZodNumber) return "z.number()";
|
|
587
|
+
if (schema instanceof $ZodBoolean) return "z.boolean()";
|
|
588
|
+
if (schema instanceof $ZodNull) return "z.null()";
|
|
589
|
+
if (schema instanceof $ZodUndefined) return "z.undefined()";
|
|
590
|
+
if (schema instanceof $ZodAny) return "z.any()";
|
|
591
|
+
if (schema instanceof $ZodObject) {
|
|
592
|
+
const shape = schema._zod.def.shape;
|
|
595
593
|
const fields = Object.entries(shape).map(([key, value]) => `${key}: ${zodToSource(value, ctx)}`).join(", ");
|
|
596
594
|
return `z.object({ ${fields} })`;
|
|
597
595
|
}
|
|
598
|
-
if (schema instanceof
|
|
599
|
-
return `z.array(${zodToSource(def.element, ctx)})`;
|
|
596
|
+
if (schema instanceof $ZodArray) {
|
|
597
|
+
return `z.array(${zodToSource(schema._zod.def.element, ctx)})`;
|
|
600
598
|
}
|
|
601
|
-
if (schema instanceof
|
|
602
|
-
const
|
|
599
|
+
if (schema instanceof $ZodEnum) {
|
|
600
|
+
const entries = schema._zod.def.entries;
|
|
601
|
+
const values = Object.values(entries).map((v) => `"${v}"`).join(", ");
|
|
603
602
|
return `z.enum([${values}])`;
|
|
604
603
|
}
|
|
605
|
-
if (schema instanceof
|
|
606
|
-
const values = def.values;
|
|
604
|
+
if (schema instanceof $ZodLiteral) {
|
|
605
|
+
const values = schema._zod.def.values;
|
|
607
606
|
const value = values.values().next().value;
|
|
608
607
|
if (typeof value === "string") return `z.literal("${value}")`;
|
|
609
608
|
return `z.literal(${value})`;
|
|
610
609
|
}
|
|
611
|
-
if (schema instanceof
|
|
612
|
-
const members = def.options.map((s) => zodToSource(s, ctx)).join(", ");
|
|
610
|
+
if (schema instanceof $ZodUnion) {
|
|
611
|
+
const members = schema._zod.def.options.map((s) => zodToSource(s, ctx)).join(", ");
|
|
613
612
|
return `z.union([${members}])`;
|
|
614
613
|
}
|
|
615
|
-
if (schema instanceof
|
|
616
|
-
const items = def.items.map((s) => zodToSource(s, ctx)).join(", ");
|
|
614
|
+
if (schema instanceof $ZodTuple) {
|
|
615
|
+
const items = schema._zod.def.items.map((s) => zodToSource(s, ctx)).join(", ");
|
|
617
616
|
return `z.tuple([${items}])`;
|
|
618
617
|
}
|
|
619
|
-
if (schema instanceof
|
|
620
|
-
return `z.record(${zodToSource(def.keyType, ctx)}, ${zodToSource(def.valueType, ctx)})`;
|
|
618
|
+
if (schema instanceof $ZodRecord) {
|
|
619
|
+
return `z.record(${zodToSource(schema._zod.def.keyType, ctx)}, ${zodToSource(schema._zod.def.valueType, ctx)})`;
|
|
621
620
|
}
|
|
622
|
-
const typeName = def
|
|
621
|
+
const typeName = schema._zod.def.type ?? "unknown";
|
|
623
622
|
return `z.any() /* unsupported: ${typeName} */`;
|
|
624
623
|
}
|
|
625
624
|
|
|
@@ -628,9 +627,8 @@ var HEADER = `// AUTO-GENERATED by zodvex \u2014 do not edit
|
|
|
628
627
|
// Run \`zodvex generate\` to regenerate
|
|
629
628
|
`;
|
|
630
629
|
function fingerprintCodec(schema) {
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
return `${zodToSource(def.in)}|${zodToSource(def.out)}`;
|
|
630
|
+
if (!(schema instanceof $ZodCodec)) return "";
|
|
631
|
+
return `${zodToSource(schema._zod.def.in)}|${zodToSource(schema._zod.def.out)}`;
|
|
634
632
|
}
|
|
635
633
|
function generateSchemaFile(models) {
|
|
636
634
|
const exports$1 = models.map((m) => {
|
|
@@ -647,13 +645,12 @@ function tryUnwrapToIdentity(schema, identityMap) {
|
|
|
647
645
|
const suffixes = [];
|
|
648
646
|
const maxDepth = 5;
|
|
649
647
|
for (let i = 0; i < maxDepth; i++) {
|
|
650
|
-
|
|
651
|
-
if (current instanceof z.ZodOptional) {
|
|
648
|
+
if (current instanceof $ZodOptional) {
|
|
652
649
|
suffixes.push(".optional()");
|
|
653
|
-
current = def.innerType;
|
|
654
|
-
} else if (current instanceof
|
|
650
|
+
current = current._zod.def.innerType;
|
|
651
|
+
} else if (current instanceof $ZodNullable) {
|
|
655
652
|
suffixes.push(".nullable()");
|
|
656
|
-
current = def.innerType;
|
|
653
|
+
current = current._zod.def.innerType;
|
|
657
654
|
} else {
|
|
658
655
|
break;
|
|
659
656
|
}
|
|
@@ -665,23 +662,23 @@ function tryUnwrapToIdentity(schema, identityMap) {
|
|
|
665
662
|
return null;
|
|
666
663
|
}
|
|
667
664
|
function tryMatchPartial(schema, identityMap) {
|
|
668
|
-
if (!(schema instanceof
|
|
669
|
-
const candidateShape = schema.shape;
|
|
665
|
+
if (!(schema instanceof $ZodObject)) return null;
|
|
666
|
+
const candidateShape = schema._zod.def.shape;
|
|
670
667
|
const candidateKeys = Object.keys(candidateShape).sort();
|
|
671
668
|
for (const [modelSchema, ref] of identityMap) {
|
|
672
|
-
if (!(modelSchema instanceof
|
|
673
|
-
const modelShape = modelSchema.shape;
|
|
669
|
+
if (!(modelSchema instanceof $ZodObject)) continue;
|
|
670
|
+
const modelShape = modelSchema._zod.def.shape;
|
|
674
671
|
const modelKeys = Object.keys(modelShape).sort();
|
|
675
672
|
if (candidateKeys.length !== modelKeys.length) continue;
|
|
676
673
|
if (candidateKeys.some((k, i) => k !== modelKeys[i])) continue;
|
|
677
674
|
let allMatch = true;
|
|
678
675
|
for (const key of candidateKeys) {
|
|
679
676
|
const candidateField = candidateShape[key];
|
|
680
|
-
if (!(candidateField instanceof
|
|
677
|
+
if (!(candidateField instanceof $ZodOptional)) {
|
|
681
678
|
allMatch = false;
|
|
682
679
|
break;
|
|
683
680
|
}
|
|
684
|
-
const inner = candidateField._zod
|
|
681
|
+
const inner = candidateField._zod.def.innerType;
|
|
685
682
|
if (inner !== modelShape[key]) {
|
|
686
683
|
allMatch = false;
|
|
687
684
|
break;
|
|
@@ -766,22 +763,23 @@ function generateApiFile(functions, models, codecs, modelCodecs, functionCodecs)
|
|
|
766
763
|
let needsZx = false;
|
|
767
764
|
function resolveSchema(schema) {
|
|
768
765
|
if (!schema) return "undefined";
|
|
769
|
-
const
|
|
766
|
+
const s = schema;
|
|
767
|
+
const ref = identityMap.get(s);
|
|
770
768
|
if (ref) {
|
|
771
769
|
neededModelImports.add(ref.exportName);
|
|
772
770
|
return `${ref.exportName}.schema.${ref.schemaKey}`;
|
|
773
771
|
}
|
|
774
|
-
const unwrapped = tryUnwrapToIdentity(
|
|
772
|
+
const unwrapped = tryUnwrapToIdentity(s, identityMap);
|
|
775
773
|
if (unwrapped) {
|
|
776
774
|
neededModelImports.add(unwrapped.ref.exportName);
|
|
777
775
|
return `${unwrapped.ref.exportName}.schema.${unwrapped.ref.schemaKey}${unwrapped.suffix}`;
|
|
778
776
|
}
|
|
779
|
-
const partialMatch = tryMatchPartial(
|
|
777
|
+
const partialMatch = tryMatchPartial(s, identityMap);
|
|
780
778
|
if (partialMatch) {
|
|
781
779
|
neededModelImports.add(partialMatch.ref.exportName);
|
|
782
780
|
return `${partialMatch.ref.exportName}.schema.${partialMatch.ref.schemaKey}${partialMatch.suffix}`;
|
|
783
781
|
}
|
|
784
|
-
const source = zodToSource(
|
|
782
|
+
const source = zodToSource(s, zodToSourceCtx);
|
|
785
783
|
if (source.includes("z.")) needsZod = true;
|
|
786
784
|
if (source.includes("zx.")) needsZx = true;
|
|
787
785
|
return source;
|