@miroir-framework/jzod-ts 0.5.0 → 0.5.2

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/src/index.ts CHANGED
@@ -1,60 +1,60 @@
1
- export {
2
- jzodToTsCode,
3
- jzodToTsTypeAliasesAndZodText,
4
- TsTypeAliasesAndZodText as JzodTypeAliasesAndZodText,
5
- TsTypeAliases,
6
- } from "./JzodToTs";
7
- export { printTsTypeAlias, printTsTypeAliases } from "./tools";
8
-
9
- export {
10
- // SCHEMAS (const)
11
- jzodArraySchema,
12
- jzodAttributeSchema,
13
- jzodAttributeDateValidationsSchema,
14
- jzodAttributeDateWithValidationsSchema,
15
- jzodAttributeNumberValidationsSchema,
16
- jzodAttributeNumberWithValidationsSchema,
17
- jzodAttributeStringValidationsSchema,
18
- jzodAttributeStringWithValidationsSchema,
19
- jzodElementSchema,
20
- jzodEnumAttributeTypesSchema,
21
- jzodEnumElementTypesSchema,
22
- jzodEnumSchema,
23
- jzodFunctionSchema,
24
- jzodIntersectionSchema,
25
- jzodLazySchema,
26
- jzodLiteralSchema,
27
- jzodMapSchema,
28
- jzodObjectSchema,
29
- jzodPromiseSchema,
30
- jzodRecordSchema,
31
- jzodReferenceSchema,
32
- jzodSetSchema,
33
- jzodTupleSchema,
34
- jzodUnionSchema,
35
- // TYPES
36
- JzodArray,
37
- JzodAttribute,
38
- JzodAttributeDateValidations,
39
- JzodAttributeDateWithValidations,
40
- JzodAttributeNumberValidations,
41
- JzodAttributeNumberWithValidations,
42
- JzodAttributeStringValidations,
43
- JzodAttributeStringWithValidations,
44
- JzodElement,
45
- JzodEnum,
46
- JzodEnumTypes,
47
- JzodFunction,
48
- JzodEnumElementTypes,
49
- JzodIntersection,
50
- JzodLazy,
51
- JzodLiteral,
52
- JzodMap,
53
- JzodObject,
54
- JzodPromise,
55
- JzodRecord,
56
- JzodReference,
57
- JzodSet,
58
- JzodUnion,
59
- JzodTuple,
60
- } from "./JzodTsInterface";
1
+ export {
2
+ jzodToTsCode,
3
+ jzodToTsTypeAliasesAndZodText,
4
+ TsTypeAliasesAndZodText as JzodTypeAliasesAndZodText,
5
+ TsTypeAliases,
6
+ } from "./JzodToTs";
7
+ export { printTsTypeAlias, printTsTypeAliases } from "./tools";
8
+
9
+ export {
10
+ // SCHEMAS (const)
11
+ jzodArraySchema,
12
+ jzodAttributeSchema,
13
+ jzodAttributeDateValidationsSchema,
14
+ jzodAttributeDateWithValidationsSchema,
15
+ jzodAttributeNumberValidationsSchema,
16
+ jzodAttributeNumberWithValidationsSchema,
17
+ jzodAttributeStringValidationsSchema,
18
+ jzodAttributeStringWithValidationsSchema,
19
+ jzodElementSchema,
20
+ jzodEnumAttributeTypesSchema,
21
+ jzodEnumElementTypesSchema,
22
+ jzodEnumSchema,
23
+ jzodFunctionSchema,
24
+ jzodIntersectionSchema,
25
+ jzodLazySchema,
26
+ jzodLiteralSchema,
27
+ jzodMapSchema,
28
+ jzodObjectSchema,
29
+ jzodPromiseSchema,
30
+ jzodRecordSchema,
31
+ jzodReferenceSchema,
32
+ jzodSetSchema,
33
+ jzodTupleSchema,
34
+ jzodUnionSchema,
35
+ // TYPES
36
+ JzodArray,
37
+ JzodAttribute,
38
+ JzodAttributeDateValidations,
39
+ JzodAttributeDateWithValidations,
40
+ JzodAttributeNumberValidations,
41
+ JzodAttributeNumberWithValidations,
42
+ JzodAttributeStringValidations,
43
+ JzodAttributeStringWithValidations,
44
+ JzodElement,
45
+ JzodEnum,
46
+ JzodEnumTypes,
47
+ JzodFunction,
48
+ JzodEnumElementTypes,
49
+ JzodIntersection,
50
+ JzodLazy,
51
+ JzodLiteral,
52
+ JzodMap,
53
+ JzodObject,
54
+ JzodPromise,
55
+ JzodRecord,
56
+ JzodReference,
57
+ JzodSet,
58
+ JzodUnion,
59
+ JzodTuple,
60
+ } from "./JzodTsInterface";
package/src/tools.ts CHANGED
@@ -1,25 +1,25 @@
1
- import { printNode } from "zod-to-ts";
2
- import ts from "typescript";
3
-
4
- import { TsTypeAliases } from "./JzodToTs";
5
-
6
- // ################################################################################################
7
- export function printTsTypeAlias(
8
- typeAlias: ts.TypeAliasDeclaration,
9
- exportPrefix: boolean = true,
10
- ): string {
11
- return (exportPrefix?"export ":"")+printNode(typeAlias)
12
- }
13
-
14
- // ################################################################################################
15
- export function printTsTypeAliases(
16
- typeAliases: TsTypeAliases,
17
- exportPrefix: boolean = true,
18
- ): string {
19
- const result = Object.entries(typeAliases).reduce((acc, curr) => {
20
- // console.log("printTypeAliases ", JSON.stringify(curr));
21
- return `${acc}
22
- ${printTsTypeAlias(curr[1],exportPrefix)}`;
23
- }, "");
24
- return result;
1
+ import { printNode } from "zod-to-ts";
2
+ import ts from "typescript";
3
+
4
+ import { TsTypeAliases } from "./JzodToTs";
5
+
6
+ // ################################################################################################
7
+ export function printTsTypeAlias(
8
+ typeAlias: ts.TypeAliasDeclaration,
9
+ exportPrefix: boolean = true,
10
+ ): string {
11
+ return (exportPrefix?"export ":"")+printNode(typeAlias)
12
+ }
13
+
14
+ // ################################################################################################
15
+ export function printTsTypeAliases(
16
+ typeAliases: TsTypeAliases,
17
+ exportPrefix: boolean = true,
18
+ ): string {
19
+ const result = Object.entries(typeAliases).reduce((acc, curr) => {
20
+ // console.log("printTypeAliases ", JSON.stringify(curr));
21
+ return `${acc}
22
+ ${printTsTypeAlias(curr[1],exportPrefix)}`;
23
+ }, "");
24
+ return result;
25
25
  }
@@ -1,108 +1,108 @@
1
- import * as fs from "fs";
2
- import * as path from "path";
3
-
4
- import { jzodBootstrapElementSchema } from "@miroir-framework/jzod";
5
- import { jzodToTsCode } from "../src/JzodToTs";
6
- import { JzodElement, jzodElementSchema } from "../src/JzodTsInterface";
7
-
8
- const refsPath = "./tests/resources"
9
- const tmpPath = "./tests/tmp";
10
-
11
-
12
- const testJzodToTs = (
13
- // testDirectory: string,
14
- referenceFileName: string,
15
- testFileName: string,
16
- testJzodSchema:JzodElement,
17
- exportPrefix: boolean,
18
- typeName: string
19
- ) => {
20
- console.log("testJzodToTs:", typeName);
21
-
22
- const testResultSchemaFilePath = path.join(tmpPath,testFileName);
23
- const expectedSchemaFilePath = path.join(refsPath,referenceFileName);
24
-
25
- const result = jzodToTsCode(testJzodSchema,exportPrefix,typeName)
26
- fs.writeFileSync(testResultSchemaFilePath,result);
27
-
28
- const resultContents = result.replace(/(\r\n|\n|\r)/gm, "");
29
- // console.log("ts Type generation resultContents", resultContents);
30
-
31
- const expectedFileContents = fs.readFileSync(expectedSchemaFilePath).toString().replace(/(\r\n|\n|\r)/gm, "")
32
- expect(resultContents).toEqual(expectedFileContents);
33
- }
34
-
35
-
36
- describe(
37
- 'Jzod-Ts',
38
- () => {
39
- // ############################################################################################
40
- it(
41
- "Jzod to TS Type",
42
- async() => {
43
-
44
-
45
- // ########################################################################################
46
- const testJzodSchema1: JzodElement = { type: "simpleType", definition: "string" };
47
-
48
- testJzodToTs(
49
- "tsTypeGeneration-testJzodSchema1 - reference.ts",
50
- "tsTypeGeneration-testJzodSchema1.ts",
51
- testJzodSchema1,
52
- true,
53
- "testJzodSchema1"
54
- );
55
-
56
- // ########################################################################################
57
- const testJzodSchema2: JzodElement = {
58
- type: "schemaReference",
59
- context: {
60
- a: { type: "simpleType", definition: "string" },
61
- b: {
62
- type: "object",
63
- definition: {
64
- test: { type: "schemaReference", definition: { relativePath: "a" } }
65
- },
66
- },
67
- },
68
- definition: { relativePath: "b" },
69
- };
70
-
71
- testJzodToTs(
72
- "tsTypeGeneration-testJzodSchema2 - reference.ts",
73
- "tsTypeGeneration-testJzodSchema2.ts",
74
- testJzodSchema2,
75
- true,
76
- "testJzodSchema2"
77
- );
78
-
79
- // ########################################################################################
80
- const testJzodSchema4:JzodElement =
81
- {
82
- type: "schemaReference",
83
- context: {
84
- ...jzodBootstrapElementSchema.context,
85
- a: {
86
- type: "array",
87
- definition: { type: "schemaReference", definition: {relativePath: "jzodArraySchema"} }
88
- }
89
- },
90
- definition: {
91
- relativePath: "a"
92
- },
93
- }
94
-
95
- testJzodToTs(
96
- "tsTypeGeneration-testJzodSchema4 - reference.ts",
97
- "tsTypeGeneration-testJzodSchema4.ts",
98
- testJzodSchema4,
99
- true,
100
- "testJzodSchema4"
101
- );
102
- }
103
- )
104
- }
105
- )
106
-
107
-
108
-
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+
4
+ import { jzodBootstrapElementSchema } from "@miroir-framework/jzod";
5
+ import { jzodToTsCode } from "../src/JzodToTs";
6
+ import { JzodElement, jzodElementSchema } from "../src/JzodTsInterface";
7
+
8
+ const refsPath = "./tests/resources"
9
+ const tmpPath = "./tests/tmp";
10
+
11
+
12
+ const testJzodToTs = (
13
+ // testDirectory: string,
14
+ referenceFileName: string,
15
+ testFileName: string,
16
+ testJzodSchema:JzodElement,
17
+ exportPrefix: boolean,
18
+ typeName: string
19
+ ) => {
20
+ console.log("testJzodToTs:", typeName);
21
+
22
+ const testResultSchemaFilePath = path.join(tmpPath,testFileName);
23
+ const expectedSchemaFilePath = path.join(refsPath,referenceFileName);
24
+
25
+ const result = jzodToTsCode(testJzodSchema,exportPrefix,typeName)
26
+ fs.writeFileSync(testResultSchemaFilePath,result);
27
+
28
+ const resultContents = result.replace(/(\r\n|\n|\r)/gm, "");
29
+ // console.log("ts Type generation resultContents", resultContents);
30
+
31
+ const expectedFileContents = fs.readFileSync(expectedSchemaFilePath).toString().replace(/(\r\n|\n|\r)/gm, "")
32
+ expect(resultContents).toEqual(expectedFileContents);
33
+ }
34
+
35
+
36
+ describe(
37
+ 'Jzod-Ts',
38
+ () => {
39
+ // ############################################################################################
40
+ it(
41
+ "Jzod to TS Type",
42
+ async() => {
43
+
44
+
45
+ // ########################################################################################
46
+ const testJzodSchema1: JzodElement = { type: "simpleType", definition: "string" };
47
+
48
+ testJzodToTs(
49
+ "tsTypeGeneration-testJzodSchema1 - reference.ts",
50
+ "tsTypeGeneration-testJzodSchema1.ts",
51
+ testJzodSchema1,
52
+ true,
53
+ "testJzodSchema1"
54
+ );
55
+
56
+ // ########################################################################################
57
+ const testJzodSchema2: JzodElement = {
58
+ type: "schemaReference",
59
+ context: {
60
+ a: { type: "simpleType", definition: "string" },
61
+ b: {
62
+ type: "object",
63
+ definition: {
64
+ test: { type: "schemaReference", definition: { relativePath: "a" } }
65
+ },
66
+ },
67
+ },
68
+ definition: { relativePath: "b" },
69
+ };
70
+
71
+ testJzodToTs(
72
+ "tsTypeGeneration-testJzodSchema2 - reference.ts",
73
+ "tsTypeGeneration-testJzodSchema2.ts",
74
+ testJzodSchema2,
75
+ true,
76
+ "testJzodSchema2"
77
+ );
78
+
79
+ // ########################################################################################
80
+ const testJzodSchema4:JzodElement =
81
+ {
82
+ type: "schemaReference",
83
+ context: {
84
+ ...jzodBootstrapElementSchema.context,
85
+ a: {
86
+ type: "array",
87
+ definition: { type: "schemaReference", definition: {relativePath: "jzodArraySchema"} }
88
+ }
89
+ },
90
+ definition: {
91
+ relativePath: "a"
92
+ },
93
+ }
94
+
95
+ testJzodToTs(
96
+ "tsTypeGeneration-testJzodSchema4 - reference.ts",
97
+ "tsTypeGeneration-testJzodSchema4.ts",
98
+ testJzodSchema4,
99
+ true,
100
+ "testJzodSchema4"
101
+ );
102
+ }
103
+ )
104
+ }
105
+ )
106
+
107
+
108
+
@@ -1,5 +1,5 @@
1
- import { ZodType, ZodTypeAny, z } from "zod";
2
-
3
- export type testJzodSchema1 = string;
4
-
5
- export const testJzodSchema1 = z.string();
1
+ import { ZodType, ZodTypeAny, z } from "zod";
2
+
3
+ export type testJzodSchema1 = string;
4
+
5
+ export const testJzodSchema1: z.ZodType<testJzodSchema1> = z.string();
@@ -6,6 +6,6 @@ export type b = {
6
6
  };
7
7
  export type testJzodSchema2 = b;
8
8
 
9
- export const a=z.string();
10
- export const b=z.object({test:z.lazy(() =>a),}).strict();
11
- export const testJzodSchema2 = z.lazy(() =>b);
9
+ export const a:z.ZodType<a> = z.string();
10
+ export const b:z.ZodType<b> = z.object({test:z.lazy(() =>a),}).strict();
11
+ export const testJzodSchema2: z.ZodType<testJzodSchema2> = z.lazy(() =>b);
@@ -221,30 +221,30 @@ export type jzodUnionSchema = {
221
221
  export type a = jzodArraySchema[];
222
222
  export type testJzodSchema4 = a;
223
223
 
224
- export const jzodBaseObjectSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict();
225
- export const jzodArraySchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("array"),definition:z.lazy(() =>jzodElementSchema),}).strict();
226
- export const jzodAttributeSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("simpleType"),coerce:z.boolean().optional(),definition:z.lazy(() =>jzodEnumAttributeTypesSchema),}).strict();
227
- export const jzodAttributeDateValidationsSchema=z.object({extra:z.record(z.string(),z.any()).optional(),type:z.enum(["min","max"] as any),parameter:z.any(),}).strict();
228
- export const jzodAttributeDateWithValidationsSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("simpleType"),definition:z.literal("date"),validations:z.array(z.lazy(() =>jzodAttributeDateValidationsSchema)),}).strict();
229
- export const jzodAttributeNumberValidationsSchema=z.object({extra:z.record(z.string(),z.any()).optional(),type:z.enum(["gt","gte","lt","lte","int","positive","nonpositive","negative","nonnegative","multipleOf","finite","safe"] as any),parameter:z.any(),}).strict();
230
- export const jzodAttributeNumberWithValidationsSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("simpleType"),definition:z.literal("number"),validations:z.array(z.lazy(() =>jzodAttributeNumberValidationsSchema)),}).strict();
231
- export const jzodAttributeStringValidationsSchema=z.object({extra:z.record(z.string(),z.any()).optional(),type:z.enum(["max","min","length","email","url","emoji","uuid","cuid","cuid2","ulid","regex","includes","startsWith","endsWith","datetime","ip"] as any),parameter:z.any(),}).strict();
232
- export const jzodAttributeStringWithValidationsSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("simpleType"),definition:z.literal("string"),validations:z.array(z.lazy(() =>jzodAttributeStringValidationsSchema)),}).strict();
233
- export const jzodElementSchema=z.union([z.lazy(() =>jzodArraySchema),z.lazy(() =>jzodAttributeSchema),z.lazy(() =>jzodAttributeDateWithValidationsSchema),z.lazy(() =>jzodAttributeNumberWithValidationsSchema),z.lazy(() =>jzodAttributeStringWithValidationsSchema),z.lazy(() =>jzodEnumSchema),z.lazy(() =>jzodFunctionSchema),z.lazy(() =>jzodLazySchema),z.lazy(() =>jzodLiteralSchema),z.lazy(() =>jzodIntersectionSchema),z.lazy(() =>jzodMapSchema),z.lazy(() =>jzodObjectSchema),z.lazy(() =>jzodPromiseSchema),z.lazy(() =>jzodRecordSchema),z.lazy(() =>jzodReferenceSchema),z.lazy(() =>jzodSetSchema),z.lazy(() =>jzodTupleSchema),z.lazy(() =>jzodUnionSchema),]);
234
- export const jzodEnumSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("enum"),definition:z.array(z.string()),}).strict();
235
- export const jzodEnumAttributeTypesSchema=z.enum(["any","bigint","boolean","date","never","null","number","string","uuid","undefined","unknown","void"] as any);
236
- export const jzodEnumElementTypesSchema=z.enum(["array","enum","function","lazy","literal","intersection","map","object","promise","record","schemaReference","set","simpleType","tuple","union"] as any);
237
- export const jzodFunctionSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("function"),definition:z.object({args:z.array(z.lazy(() =>jzodElementSchema)),returns:z.lazy(() =>jzodElementSchema).optional(),}).strict(),}).strict();
238
- export const jzodLazySchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("lazy"),definition:z.lazy(() =>jzodFunctionSchema),}).strict();
239
- export const jzodLiteralSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("literal"),definition:z.string(),}).strict();
240
- export const jzodIntersectionSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("intersection"),definition:z.object({left:z.lazy(() =>jzodElementSchema),right:z.lazy(() =>jzodElementSchema),}).strict(),}).strict();
241
- export const jzodMapSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("map"),definition:z.tuple(["z.lazy(() =>jzodElementSchema)","z.lazy(() =>jzodElementSchema)"] as any),}).strict();
242
- export const jzodObjectSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({extend:z.union([z.lazy(() =>jzodReferenceSchema),z.lazy(() =>jzodObjectSchema),]).optional(),type:z.literal("object"),nonStrict:z.boolean().optional(),definition:z.record(z.string(),z.lazy(() =>jzodElementSchema)),}).strict();
243
- export const jzodPromiseSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("promise"),definition:z.lazy(() =>jzodElementSchema),}).strict();
244
- export const jzodRecordSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("record"),definition:z.lazy(() =>jzodElementSchema),}).strict();
245
- export const jzodReferenceSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("schemaReference"),context:z.record(z.string(),z.lazy(() =>jzodElementSchema)).optional(),definition:z.object({eager:z.boolean().optional(),relativePath:z.string().optional(),absolutePath:z.string().optional(),}).strict(),}).strict();
246
- export const jzodSetSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("set"),definition:z.lazy(() =>jzodElementSchema),}).strict();
247
- export const jzodTupleSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("tuple"),definition:z.array(z.lazy(() =>jzodElementSchema)),}).strict();
248
- export const jzodUnionSchema=z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("union"),discriminator:z.string().optional(),definition:z.array(z.lazy(() =>jzodElementSchema)),}).strict();
249
- export const a=z.array(z.lazy(() =>jzodArraySchema));
250
- export const testJzodSchema4 = z.lazy(() =>a);
224
+ export const jzodBaseObjectSchema:z.ZodType<jzodBaseObjectSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict();
225
+ export const jzodArraySchema:z.ZodType<jzodArraySchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("array"),definition:z.lazy(() =>jzodElementSchema),}).strict();
226
+ export const jzodAttributeSchema:z.ZodType<jzodAttributeSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("simpleType"),coerce:z.boolean().optional(),definition:z.lazy(() =>jzodEnumAttributeTypesSchema),}).strict();
227
+ export const jzodAttributeDateValidationsSchema:z.ZodType<jzodAttributeDateValidationsSchema> = z.object({extra:z.record(z.string(),z.any()).optional(),type:z.enum(["min","max"] as any),parameter:z.any(),}).strict();
228
+ export const jzodAttributeDateWithValidationsSchema:z.ZodType<jzodAttributeDateWithValidationsSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("simpleType"),definition:z.literal("date"),validations:z.array(z.lazy(() =>jzodAttributeDateValidationsSchema)),}).strict();
229
+ export const jzodAttributeNumberValidationsSchema:z.ZodType<jzodAttributeNumberValidationsSchema> = z.object({extra:z.record(z.string(),z.any()).optional(),type:z.enum(["gt","gte","lt","lte","int","positive","nonpositive","negative","nonnegative","multipleOf","finite","safe"] as any),parameter:z.any(),}).strict();
230
+ export const jzodAttributeNumberWithValidationsSchema:z.ZodType<jzodAttributeNumberWithValidationsSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("simpleType"),definition:z.literal("number"),validations:z.array(z.lazy(() =>jzodAttributeNumberValidationsSchema)),}).strict();
231
+ export const jzodAttributeStringValidationsSchema:z.ZodType<jzodAttributeStringValidationsSchema> = z.object({extra:z.record(z.string(),z.any()).optional(),type:z.enum(["max","min","length","email","url","emoji","uuid","cuid","cuid2","ulid","regex","includes","startsWith","endsWith","datetime","ip"] as any),parameter:z.any(),}).strict();
232
+ export const jzodAttributeStringWithValidationsSchema:z.ZodType<jzodAttributeStringWithValidationsSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("simpleType"),definition:z.literal("string"),validations:z.array(z.lazy(() =>jzodAttributeStringValidationsSchema)),}).strict();
233
+ export const jzodElementSchema:z.ZodType<jzodElementSchema> = z.union([z.lazy(() =>jzodArraySchema),z.lazy(() =>jzodAttributeSchema),z.lazy(() =>jzodAttributeDateWithValidationsSchema),z.lazy(() =>jzodAttributeNumberWithValidationsSchema),z.lazy(() =>jzodAttributeStringWithValidationsSchema),z.lazy(() =>jzodEnumSchema),z.lazy(() =>jzodFunctionSchema),z.lazy(() =>jzodLazySchema),z.lazy(() =>jzodLiteralSchema),z.lazy(() =>jzodIntersectionSchema),z.lazy(() =>jzodMapSchema),z.lazy(() =>jzodObjectSchema),z.lazy(() =>jzodPromiseSchema),z.lazy(() =>jzodRecordSchema),z.lazy(() =>jzodReferenceSchema),z.lazy(() =>jzodSetSchema),z.lazy(() =>jzodTupleSchema),z.lazy(() =>jzodUnionSchema),]);
234
+ export const jzodEnumSchema:z.ZodType<jzodEnumSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("enum"),definition:z.array(z.string()),}).strict();
235
+ export const jzodEnumAttributeTypesSchema:z.ZodType<jzodEnumAttributeTypesSchema> = z.enum(["any","bigint","boolean","date","never","null","number","string","uuid","undefined","unknown","void"] as any);
236
+ export const jzodEnumElementTypesSchema:z.ZodType<jzodEnumElementTypesSchema> = z.enum(["array","enum","function","lazy","literal","intersection","map","object","promise","record","schemaReference","set","simpleType","tuple","union"] as any);
237
+ export const jzodFunctionSchema:z.ZodType<jzodFunctionSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("function"),definition:z.object({args:z.array(z.lazy(() =>jzodElementSchema)),returns:z.lazy(() =>jzodElementSchema).optional(),}).strict(),}).strict();
238
+ export const jzodLazySchema:z.ZodType<jzodLazySchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("lazy"),definition:z.lazy(() =>jzodFunctionSchema),}).strict();
239
+ export const jzodLiteralSchema:z.ZodType<jzodLiteralSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("literal"),definition:z.string(),}).strict();
240
+ export const jzodIntersectionSchema:z.ZodType<jzodIntersectionSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("intersection"),definition:z.object({left:z.lazy(() =>jzodElementSchema),right:z.lazy(() =>jzodElementSchema),}).strict(),}).strict();
241
+ export const jzodMapSchema:z.ZodType<jzodMapSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("map"),definition:z.tuple(["z.lazy(() =>jzodElementSchema)","z.lazy(() =>jzodElementSchema)"] as any),}).strict();
242
+ export const jzodObjectSchema:z.ZodType<jzodObjectSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({extend:z.union([z.lazy(() =>jzodReferenceSchema),z.lazy(() =>jzodObjectSchema),]).optional(),type:z.literal("object"),nonStrict:z.boolean().optional(),definition:z.record(z.string(),z.lazy(() =>jzodElementSchema)),}).strict();
243
+ export const jzodPromiseSchema:z.ZodType<jzodPromiseSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("promise"),definition:z.lazy(() =>jzodElementSchema),}).strict();
244
+ export const jzodRecordSchema:z.ZodType<jzodRecordSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("record"),definition:z.lazy(() =>jzodElementSchema),}).strict();
245
+ export const jzodReferenceSchema:z.ZodType<jzodReferenceSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("schemaReference"),context:z.record(z.string(),z.lazy(() =>jzodElementSchema)).optional(),definition:z.object({eager:z.boolean().optional(),relativePath:z.string().optional(),absolutePath:z.string().optional(),}).strict(),}).strict();
246
+ export const jzodSetSchema:z.ZodType<jzodSetSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("set"),definition:z.lazy(() =>jzodElementSchema),}).strict();
247
+ export const jzodTupleSchema:z.ZodType<jzodTupleSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("tuple"),definition:z.array(z.lazy(() =>jzodElementSchema)),}).strict();
248
+ export const jzodUnionSchema:z.ZodType<jzodUnionSchema> = z.object({optional:z.boolean().optional(),nullable:z.boolean().optional(),extra:z.record(z.string(),z.any()).optional(),}).strict().extend({type:z.literal("union"),discriminator:z.string().optional(),definition:z.array(z.lazy(() =>jzodElementSchema)),}).strict();
249
+ export const a:z.ZodType<a> = z.array(z.lazy(() =>jzodArraySchema));
250
+ export const testJzodSchema4: z.ZodType<testJzodSchema4> = z.lazy(() =>a);
package/tsconfig.json CHANGED
@@ -1,26 +1,26 @@
1
- {
2
- "compilerOptions": {
3
- "outDir": "dist/out-tsc",
4
- "declaration": true,
5
- "declarationDir": "dist/out-tsc/dts",
6
- "rootDir": "./",
7
- "baseUrl": "./",
8
- "types": ["node", "jest"],
9
- "removeComments": true,
10
- "module": "ESNext",
11
- "target": "ES2017",
12
- "jsx": "react-jsx",
13
- "moduleResolution": "Node",
14
- "esModuleInterop": true,
15
- "allowSyntheticDefaultImports":true,
16
- "resolveJsonModule": true,
17
- "lib": ["es6", "dom"],
18
- "noImplicitAny": true,
19
- "noImplicitThis": true,
20
- "strictNullChecks": true,
21
- "plugins": [
22
- ],
23
- },
24
- "exclude": ["./node_modules/**","./src/**/*.spec.js", "./src/**/*.spec.jsx", "./src/**/*.spec.ts", "./src/**/*.spec.tsx"],
25
- "include": ["./src/**/*.json", "./src/**/*.js", "./src/**/*.jsx", "./src/**/*.ts", "./src/**/*.tsx"]
1
+ {
2
+ "compilerOptions": {
3
+ "outDir": "dist/out-tsc",
4
+ "declaration": true,
5
+ "declarationDir": "dist/out-tsc/dts",
6
+ "rootDir": "./",
7
+ "baseUrl": "./",
8
+ "types": ["node", "jest"],
9
+ "removeComments": true,
10
+ "module": "ESNext",
11
+ "target": "ES2017",
12
+ "jsx": "react-jsx",
13
+ "moduleResolution": "Node",
14
+ "esModuleInterop": true,
15
+ "allowSyntheticDefaultImports":true,
16
+ "resolveJsonModule": true,
17
+ "lib": ["es6", "dom"],
18
+ "noImplicitAny": true,
19
+ "noImplicitThis": true,
20
+ "strictNullChecks": true,
21
+ "plugins": [
22
+ ],
23
+ },
24
+ "exclude": ["./node_modules/**","./src/**/*.spec.js", "./src/**/*.spec.jsx", "./src/**/*.spec.ts", "./src/**/*.spec.tsx"],
25
+ "include": ["./src/**/*.json", "./src/**/*.js", "./src/**/*.jsx", "./src/**/*.ts", "./src/**/*.tsx"]
26
26
  }
@@ -1,8 +0,0 @@
1
- import ts from "typescript";
2
- import { JzodElement } from "@miroir-framework/jzod";
3
- export type TsTypeAliases = {
4
- [k: string]: ts.TypeAliasDeclaration;
5
- };
6
- export declare function jzodToTsTypeAliases(typeName: string, element: JzodElement): {
7
- [k: string]: ts.TypeAliasDeclaration;
8
- };