@forklaunch/validator 0.3.10 → 0.3.12
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/lib/src/shared/types/schema.types.d.ts +16 -2
- package/lib/src/shared/types/schema.types.d.ts.map +1 -1
- package/lib/src/typebox/staticSchemaValidator.d.ts +29 -23
- package/lib/src/typebox/staticSchemaValidator.d.ts.map +1 -1
- package/lib/src/typebox/staticSchemaValidator.js +8 -0
- package/lib/src/typebox/typeboxSchemaValidator.d.ts +13 -1
- package/lib/src/typebox/typeboxSchemaValidator.d.ts.map +1 -1
- package/lib/src/typebox/typeboxSchemaValidator.js +20 -1
- package/lib/src/zod/staticSchemaValidator.d.ts +29 -23
- package/lib/src/zod/staticSchemaValidator.d.ts.map +1 -1
- package/lib/src/zod/staticSchemaValidator.js +8 -0
- package/lib/src/zod/zodSchemaValidator.d.ts +13 -1
- package/lib/src/zod/zodSchemaValidator.d.ts.map +1 -1
- package/lib/src/zod/zodSchemaValidator.js +18 -5
- package/lib/tests/typebox/schemaValidator.test.js +35 -1
- package/lib/tests/utils/compare.js +2 -2
- package/lib/tests/utils/mockSchemaValidator.d.ts +4 -1
- package/lib/tests/utils/mockSchemaValidator.d.ts.map +1 -1
- package/lib/tests/utils/mockSchemaValidator.js +9 -2
- package/lib/tests/zod/schemaValidator.test.js +27 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/lib/eslint.config.d.mts +0 -1134
- package/lib/eslint.config.d.mts.map +0 -1
- package/lib/eslint.config.mjs +0 -10
- package/lib/jest.config.d.ts +0 -4
- package/lib/jest.config.d.ts.map +0 -1
- package/lib/jest.config.js +0 -19
|
@@ -13,7 +13,7 @@ type RecursiveUnion<T extends readonly string[]> = T extends readonly [
|
|
|
13
13
|
infer F extends string,
|
|
14
14
|
...infer R extends readonly string[]
|
|
15
15
|
] ? R extends [] ? F : `${F} | ${RecursiveUnion<R>}` : '';
|
|
16
|
-
export declare class MockSchemaValidator implements SchemaValidator<(<T extends string>(schema: T) => T), <T extends string>(schema: T) => T, <T extends string>(schema: T) => `optional ${T}`, <T extends string>(schema: T) => `array ${T}`, <T extends readonly string[]>(schemas: T) => RecursiveUnion<T>, <T extends LiteralSchema>(schema: T) => `literal ${T}`, <T extends string>(schema: T, value: string) => boolean, <T extends string>(schema: T, value: string) => ParseResult<T>, <T extends string>(schema: T) => SchemaObject> {
|
|
16
|
+
export declare class MockSchemaValidator implements SchemaValidator<(<T extends string>(schema: T) => T), <T extends string>(schema: T) => T, <T extends string>(schema: T) => `optional ${T}`, <T extends string>(schema: T) => `array ${T}`, <T extends readonly string[]>(schemas: T) => RecursiveUnion<T>, <T extends LiteralSchema>(schema: T) => `literal ${T}`, <T extends LiteralSchema>(schemaEnum: Record<string, T>) => `enum ${T}`, (value: unknown) => value is string, <T extends string>(schema: T, value: string) => boolean, <T extends string>(schema: T, value: string) => ParseResult<T>, <T extends string>(schema: T) => SchemaObject> {
|
|
17
17
|
_Type: 'Mock';
|
|
18
18
|
_SchemaCatchall: string;
|
|
19
19
|
_ValidSchemaObject: string;
|
|
@@ -36,6 +36,8 @@ export declare class MockSchemaValidator implements SchemaValidator<(<T extends
|
|
|
36
36
|
array<T extends string>(schema: T): `array ${T}`;
|
|
37
37
|
union<T extends readonly string[]>(schemas: T): RecursiveUnion<T>;
|
|
38
38
|
literal<T extends LiteralSchema>(schema: T): `literal ${T}`;
|
|
39
|
+
enum_<T extends LiteralSchema>(schemaEnum: Record<string, T>): `enum ${T}`;
|
|
40
|
+
isSchema(value: unknown): value is string;
|
|
39
41
|
validate<T extends string>(schema: T, value: string): boolean;
|
|
40
42
|
parse<T extends string>(schema: T, value: string): ParseResult<T>;
|
|
41
43
|
openapi<T extends string>(_schema: T): SchemaObject;
|
|
@@ -56,6 +58,7 @@ export declare const optional: <T extends string>(schema: T) => `optional ${T}`;
|
|
|
56
58
|
export declare const array: <T extends string>(schema: T) => `array ${T}`;
|
|
57
59
|
export declare const union: <T extends readonly string[]>(schemas: T) => RecursiveUnion<T>;
|
|
58
60
|
export declare const literal: <T extends LiteralSchema>(schema: T) => `literal ${T}`;
|
|
61
|
+
export declare const enum_: <T extends LiteralSchema>(schemaEnum: Record<string, T>) => `enum ${T}`;
|
|
59
62
|
export declare const validate: <T extends string>(schema: T, value: string) => boolean;
|
|
60
63
|
export declare const openapi: <T extends string>(_schema: T) => SchemaObject;
|
|
61
64
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockSchemaValidator.d.ts","sourceRoot":"","sources":["../../../tests/utils/mockSchemaValidator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"mockSchemaValidator.d.ts","sourceRoot":"","sources":["../../../tests/utils/mockSchemaValidator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EACL,aAAa,EACb,WAAW,EACZ,MAAM,qCAAqC,CAAC;AAE7C,OAAO,QAAQ,qCAAqC,CAAC;IACnD,UAAU,aAAa,CAAC,CAAC;QACvB,IAAI,EAAE,CAAC,CAAC;KACT;IAED,UAAU,eAAe,CAAC,CAAC;QACzB,IAAI,EAAE,CAAC,CAAC;KACT;CACF;AAED,KAAK,cAAc,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS,SAAS;IACpE,MAAM,CAAC,SAAS,MAAM;IACtB,GAAG,MAAM,CAAC,SAAS,SAAS,MAAM,EAAE;CACrC,GACG,CAAC,SAAS,EAAE,GACV,CAAC,GACD,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC,EAAE,GAC/B,EAAE,CAAC;AAEP,qBAAa,mBACX,YACE,eAAe,EACb,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAClC,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,EAClC,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,YAAY,CAAC,EAAE,EAChD,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC,EAAE,EAC7C,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,EAC9D,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,KAAK,WAAW,CAAC,EAAE,EACtD,CAAC,CAAC,SAAS,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,EAAE,EACvE,CAAC,KAAK,EAAE,OAAO,KAAK,KAAK,IAAI,MAAM,EACnC,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,EACvD,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,EAC9D,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,KAAK,YAAY,CAC9C;IAEH,KAAK,EAAG,MAAM,CAAC;IACf,eAAe,EAAG,MAAM,CAAC;IACzB,kBAAkB,EAAG,MAAM,CAAC;IAE5B,MAAM,SAAY;IAClB,IAAI,SAAU;IACd,KAAK,SAAW;IAChB,GAAG,SAAS;IACZ,MAAM,SAAY;IAClB,MAAM,SAAY;IAClB,OAAO,SAAa;IACpB,IAAI,SAAU;IACd,MAAM,SAAY;IAClB,OAAO,SAAa;IACpB,GAAG,SAAS;IACZ,OAAO,SAAa;IACpB,KAAK,SAAW;IAEhB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC;IAGvC,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC;IAGpC,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,YAAY,CAAC,EAAE;IAGtD,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,SAAS,CAAC,EAAE;IAGhD,KAAK,CAAC,CAAC,SAAS,SAAS,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC;IAGjE,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,GAAG,WAAW,CAAC,EAAE;IAG3D,KAAK,CAAC,CAAC,SAAS,aAAa,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,QAAQ,CAAC,EAAE;IAG1E,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM;IAGzC,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAG7D,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC;IAWjE,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,YAAY;CAGpD;AAED,eAAO,MAAM,mBAAmB,qBAA4B,CAAC;AAC7D,eAAO,MAAM,MAAM,QAA6B,CAAC;AACjD,eAAO,MAAM,MAAM,QAA6B,CAAC;AACjD,eAAO,MAAM,MAAM,QAA6B,CAAC;AACjD,eAAO,MAAM,OAAO,QAA8B,CAAC;AACnD,eAAO,MAAM,IAAI,QAA2B,CAAC;AAC7C,eAAO,MAAM,MAAM,QAA6B,CAAC;AACjD,eAAO,MAAM,OAAO,QAA8B,CAAC;AACnD,eAAO,MAAM,GAAG,QAA0B,CAAC;AAC3C,eAAO,MAAM,OAAO,QAA8B,CAAC;AACnD,eAAO,MAAM,KAAK,QAA4B,CAAC;AAC/C,eAAO,MAAM,QAAQ,GAnDV,CAAC,SAAS,MAAM,iBAmDmD,CAAC;AAC/E,eAAO,MAAM,QAAQ,GAjDV,CAAC,SAAS,MAAM,UAAU,CAAC,KAAG,YAAY,CAAC,EAiDwB,CAAC;AAC/E,eAAO,MAAM,KAAK,GA/CV,CAAC,SAAS,MAAM,UAAU,CAAC,KAAG,SAAS,CAAC,EA+CwB,CAAC;AAEzE,eAAO,MAAM,KAAK,GA9CV,CAAC,SAAS,SAAS,MAAM,EAAE,WAAW,CAAC,KAAG,cAAc,CAAC,CAAC,CA8CM,CAAC;AACzE,eAAO,MAAM,OAAO,GA5CV,CAAC,SAAS,aAAa,UAAU,CAAC,KAAG,WAAW,CAAC,EA4CiB,CAAC;AAC7E,eAAO,MAAM,KAAK,GA1CV,CAAC,SAAS,aAAa,cAAc,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,KAAG,QAAQ,CAAC,EA0CF,CAAC;AACzE,eAAO,MAAM,QAAQ,GArCV,CAAC,SAAS,MAAM,UAAU,CAAC,SAAS,MAAM,KAAG,OAqCsB,CAAC;AAC/E,eAAO,MAAM,OAAO,GAxBV,CAAC,SAAS,MAAM,WAAW,CAAC,KAAG,YAwBmC,CAAC"}
|
|
@@ -22,10 +22,10 @@ export class MockSchemaValidator {
|
|
|
22
22
|
return schema;
|
|
23
23
|
}
|
|
24
24
|
optional(schema) {
|
|
25
|
-
return
|
|
25
|
+
return `optional ${schema}`;
|
|
26
26
|
}
|
|
27
27
|
array(schema) {
|
|
28
|
-
return
|
|
28
|
+
return `array ${schema}`;
|
|
29
29
|
}
|
|
30
30
|
union(schemas) {
|
|
31
31
|
return schemas.join(' | ');
|
|
@@ -33,6 +33,12 @@ export class MockSchemaValidator {
|
|
|
33
33
|
literal(schema) {
|
|
34
34
|
return `literal ${schema}`;
|
|
35
35
|
}
|
|
36
|
+
enum_(schemaEnum) {
|
|
37
|
+
return `enum ${Object.values(schemaEnum).join(' | ')}`;
|
|
38
|
+
}
|
|
39
|
+
isSchema(value) {
|
|
40
|
+
return typeof value === 'string';
|
|
41
|
+
}
|
|
36
42
|
validate(schema, value) {
|
|
37
43
|
return schema === value;
|
|
38
44
|
}
|
|
@@ -68,5 +74,6 @@ export const array = mockSchemaValidator.array.bind(mockSchemaValidator);
|
|
|
68
74
|
// note, use 'as const' when calling on the input array, for proper type parsing
|
|
69
75
|
export const union = mockSchemaValidator.union.bind(mockSchemaValidator);
|
|
70
76
|
export const literal = mockSchemaValidator.literal.bind(mockSchemaValidator);
|
|
77
|
+
export const enum_ = mockSchemaValidator.enum_.bind(mockSchemaValidator);
|
|
71
78
|
export const validate = mockSchemaValidator.validate.bind(mockSchemaValidator);
|
|
72
79
|
export const openapi = mockSchemaValidator.openapi.bind(mockSchemaValidator);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { generateSchema } from '@anatine/zod-openapi';
|
|
2
2
|
import { z } from 'zod';
|
|
3
|
-
import { array, number, openapi, optional, parse, schemify, string, union, validate } from '../../src/zod';
|
|
3
|
+
import { array, enum_, isSchema, number, openapi, optional, parse, schemify, string, union, validate } from '../../src/zod';
|
|
4
4
|
import { compare } from '../utils/compare';
|
|
5
5
|
describe('zod schema validator tests', () => {
|
|
6
6
|
let schema;
|
|
@@ -118,6 +118,32 @@ describe('zod schema validator tests', () => {
|
|
|
118
118
|
hello: z.literal('world')
|
|
119
119
|
}));
|
|
120
120
|
});
|
|
121
|
+
test('enum', async () => {
|
|
122
|
+
let TestSingleEnum;
|
|
123
|
+
(function (TestSingleEnum) {
|
|
124
|
+
TestSingleEnum["WORLD"] = "world";
|
|
125
|
+
})(TestSingleEnum || (TestSingleEnum = {}));
|
|
126
|
+
const schemified = enum_(TestSingleEnum);
|
|
127
|
+
compare(schemified, z.union([z.literal('world')]));
|
|
128
|
+
let TestMultipleEnum;
|
|
129
|
+
(function (TestMultipleEnum) {
|
|
130
|
+
TestMultipleEnum["WORLD"] = "world";
|
|
131
|
+
TestMultipleEnum["HELLO"] = "hello";
|
|
132
|
+
})(TestMultipleEnum || (TestMultipleEnum = {}));
|
|
133
|
+
const schemifiedMultiple = enum_(TestMultipleEnum);
|
|
134
|
+
compare(schemifiedMultiple, z.union([z.literal('world'), z.literal('hello')]));
|
|
135
|
+
});
|
|
136
|
+
test('isSchema', () => {
|
|
137
|
+
expect(isSchema(z.string())).toBe(true);
|
|
138
|
+
expect(isSchema(z.number())).toBe(true);
|
|
139
|
+
expect(isSchema(z.object({ foo: z.string() }))).toBe(true);
|
|
140
|
+
expect(isSchema(schemified)).toBe(true);
|
|
141
|
+
expect(isSchema('not a schema')).toBe(false);
|
|
142
|
+
expect(isSchema(42)).toBe(false);
|
|
143
|
+
expect(isSchema({})).toBe(false);
|
|
144
|
+
expect(isSchema(null)).toBe(false);
|
|
145
|
+
expect(isSchema(undefined)).toBe(false);
|
|
146
|
+
});
|
|
121
147
|
test('validate', async () => {
|
|
122
148
|
validate(schemified, {
|
|
123
149
|
hello: {
|