@lucania/schema 1.0.7 → 2.0.0
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/builder.d.ts +48 -0
- package/build/error/ValidationError.d.ts +5 -0
- package/build/error/ValidationPass.d.ts +17 -0
- package/build/index.d.ts +17 -100
- package/build/index.js +607 -316
- package/build/schema/AnySchema.d.ts +8 -0
- package/build/schema/ArraySchema.d.ts +13 -0
- package/build/schema/BaseSchema.d.ts +32 -0
- package/build/schema/BooleanSchema.d.ts +9 -0
- package/build/schema/DateSchema.d.ts +22 -0
- package/build/schema/DynamicObjectSchema.d.ts +17 -0
- package/build/schema/EnumerationSchema.d.ts +10 -0
- package/build/schema/NumberSchema.d.ts +15 -0
- package/build/schema/ObjectSchema.d.ts +23 -0
- package/build/schema/OrSetSchema.d.ts +17 -0
- package/build/schema/StringSchema.d.ts +13 -0
- package/build/typing/extended.d.ts +3 -0
- package/build/typing/toolbox.d.ts +33 -0
- package/package.json +9 -9
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { BaseSchemaAny } from "./typing/extended";
|
|
2
|
+
import { DefaultValue, ModelValue, TypedMembers } from "./typing/toolbox";
|
|
3
|
+
import { AnySchema } from "./schema/AnySchema";
|
|
4
|
+
import { ArraySchema, ArraySource } from "./schema/ArraySchema";
|
|
5
|
+
import { BooleanSchema, BooleanSource } from "./schema/BooleanSchema";
|
|
6
|
+
import { DateSchema, DateSource } from "./schema/DateSchema";
|
|
7
|
+
import { DynamicObjectSchema, DynamicObjectSource } from "./schema/DynamicObjectSchema";
|
|
8
|
+
import { EnumerationSchema } from "./schema/EnumerationSchema";
|
|
9
|
+
import { NumberSchema, NumberSource } from "./schema/NumberSchema";
|
|
10
|
+
import { ObjectSchema, ObjectSource, ObjectSubschema } from "./schema/ObjectSchema";
|
|
11
|
+
import { OrSetSchema, OrSetSchemaSource } from "./schema/OrSetSchema";
|
|
12
|
+
import { StringSchema, StringSource } from "./schema/StringSchema";
|
|
13
|
+
import { BaseSchema, SourceValue } from ".";
|
|
14
|
+
export declare namespace Schema {
|
|
15
|
+
function String(): StringSchema<true, undefined>;
|
|
16
|
+
function String<Required extends boolean>(required: Required): StringSchema<Required, undefined>;
|
|
17
|
+
function String<Required extends boolean, Default extends DefaultValue<StringSource>>(required: Required, defaultValue: Default): StringSchema<Required, Default>;
|
|
18
|
+
function Number(): NumberSchema<true, undefined>;
|
|
19
|
+
function Number<Required extends boolean>(required: Required): NumberSchema<Required, undefined>;
|
|
20
|
+
function Number<Required extends boolean, Default extends DefaultValue<NumberSource>>(required: Required, defaultValue: Default): NumberSchema<Required, Default>;
|
|
21
|
+
function Boolean(): BooleanSchema<true, undefined>;
|
|
22
|
+
function Boolean<Required extends boolean>(required: Required): BooleanSchema<Required, undefined>;
|
|
23
|
+
function Boolean<Required extends boolean, Default extends DefaultValue<BooleanSource>>(required: Required, defaultValue: Default): BooleanSchema<Required, Default>;
|
|
24
|
+
function Date(): DateSchema<true, undefined>;
|
|
25
|
+
function Date<Required extends boolean>(required: Required): DateSchema<Required, undefined>;
|
|
26
|
+
function Date<Required extends boolean, Default extends DefaultValue<DateSource>>(required: Required, defaultValue: Default): DateSchema<Required, Default>;
|
|
27
|
+
function Any(): AnySchema<true, undefined>;
|
|
28
|
+
function Any<Required extends boolean>(required: Required): AnySchema<Required, undefined>;
|
|
29
|
+
function Any<Required extends boolean, Default extends DefaultValue<any>>(required: Required, defaultValue: Default): AnySchema<Required, Default>;
|
|
30
|
+
function Object<Subschema extends ObjectSubschema>(subschema: Subschema): ObjectSchema<Subschema, true, undefined>;
|
|
31
|
+
function Object<Subschema extends ObjectSubschema, Required extends boolean>(subschema: Subschema, required: Required): ObjectSchema<Subschema, Required, undefined>;
|
|
32
|
+
function Object<Subschema extends ObjectSubschema, Required extends boolean, Default extends DefaultValue<ObjectSource<Subschema>>>(subschema: Subschema, required: Required, defaultValue: Default): ObjectSchema<Subschema, Required, Default>;
|
|
33
|
+
function Array<Subschema extends BaseSchemaAny>(subschema: Subschema): ArraySchema<Subschema, true, undefined>;
|
|
34
|
+
function Array<Subschema extends BaseSchemaAny, Required extends boolean>(subschema: Subschema, required: Required): ArraySchema<Subschema, Required, undefined>;
|
|
35
|
+
function Array<Subschema extends BaseSchemaAny, Required extends boolean, Default extends DefaultValue<ArraySource<Subschema>>>(subschema: Subschema, required: Required, defaultValue: Default): ArraySchema<Subschema, Required, Default>;
|
|
36
|
+
function Enumeration<Members extends string[]>(subschema: TypedMembers<Members>): EnumerationSchema<Members, true, undefined>;
|
|
37
|
+
function Enumeration<Members extends string[], Required extends boolean>(subschema: TypedMembers<Members>, required: Required): EnumerationSchema<Members, Required, undefined>;
|
|
38
|
+
function Enumeration<Members extends string[], Required extends boolean, Default extends DefaultValue<Members[number]>>(subschema: TypedMembers<Members>, required: Required, defaultValue: Default): EnumerationSchema<Members, Required, Default>;
|
|
39
|
+
function DynamicObject<Subschema extends BaseSchemaAny>(subschema: Subschema): DynamicObjectSchema<Subschema, true, undefined>;
|
|
40
|
+
function DynamicObject<Subschema extends BaseSchemaAny, Required extends boolean>(subschema: Subschema, required: Required): DynamicObjectSchema<Subschema, Required, undefined>;
|
|
41
|
+
function DynamicObject<Subschema extends BaseSchemaAny, Required extends boolean, Default extends DefaultValue<DynamicObjectSource<Subschema>>>(subschema: Subschema, required: Required, defaultValue: Default): DynamicObjectSchema<Subschema, Required, Default>;
|
|
42
|
+
function OrSet<MemberSchemas extends BaseSchemaAny[]>(subschema: TypedMembers<MemberSchemas>): OrSetSchema<MemberSchemas, true, undefined>;
|
|
43
|
+
function OrSet<MemberSchemas extends BaseSchemaAny[], Required extends boolean>(subschema: TypedMembers<MemberSchemas>, required: Required): OrSetSchema<MemberSchemas, Required, undefined>;
|
|
44
|
+
function OrSet<MemberSchemas extends BaseSchemaAny[], Required extends boolean, Default extends DefaultValue<OrSetSchemaSource<MemberSchemas>>>(subschema: TypedMembers<MemberSchemas>, required: Required, defaultValue: Default): OrSetSchema<MemberSchemas, Required, Default>;
|
|
45
|
+
function Members<Members extends any[]>(...members: Members): TypedMembers<Members>;
|
|
46
|
+
type Model<Schema extends BaseSchemaAny> = Schema extends BaseSchema<infer Source, infer Model, infer Require, infer Default> ? (ModelValue<Source, Model, Require, Default>) : never;
|
|
47
|
+
type Source<Schema extends BaseSchemaAny> = Schema extends BaseSchema<infer Source, any, infer Require, infer Default> ? (SourceValue<Source, Require, Default>) : never;
|
|
48
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { DefaultValue, SourceValue } from "../typing/toolbox";
|
|
2
|
+
import { BaseSchemaAny } from "../typing/extended";
|
|
3
|
+
import { ValidationError } from "./ValidationError";
|
|
4
|
+
export declare class ValidationPass {
|
|
5
|
+
readonly originalSchema: BaseSchemaAny;
|
|
6
|
+
readonly originalSource: SourceValue<any, boolean, DefaultValue<any>>;
|
|
7
|
+
private _path;
|
|
8
|
+
private _schema;
|
|
9
|
+
private _source;
|
|
10
|
+
constructor(originalSchema: BaseSchemaAny, originalSource: SourceValue<any, boolean, DefaultValue<any>>);
|
|
11
|
+
get path(): string[];
|
|
12
|
+
get schema(): BaseSchemaAny;
|
|
13
|
+
get source(): any;
|
|
14
|
+
next(path: string[], schema: BaseSchemaAny, source: SourceValue<any, boolean, DefaultValue<any>>): ValidationPass;
|
|
15
|
+
assert(condition: boolean, message: string): void;
|
|
16
|
+
getError(message?: string): ValidationError;
|
|
17
|
+
}
|
package/build/index.d.ts
CHANGED
|
@@ -1,100 +1,17 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
any: [string];
|
|
19
|
-
Date: [number, bigint, string];
|
|
20
|
-
}
|
|
21
|
-
type Primitive = keyof Map;
|
|
22
|
-
type OrCompound = [Any, "or", Any];
|
|
23
|
-
type AndCompound = [Any, "and", Any];
|
|
24
|
-
type Dynamic = {
|
|
25
|
-
$: Any;
|
|
26
|
-
};
|
|
27
|
-
type Array = [Any];
|
|
28
|
-
type Hierarchy = {
|
|
29
|
-
[Key: string]: Any;
|
|
30
|
-
};
|
|
31
|
-
type Most = Primitive | OrCompound | AndCompound | Dynamic | Array | Hierarchy;
|
|
32
|
-
type TypedMeta<Schema extends Most> = {
|
|
33
|
-
type: Schema;
|
|
34
|
-
required: boolean;
|
|
35
|
-
validate?: Validator<Model<Schema>>;
|
|
36
|
-
default?: Model<Schema> | (() => Model<Schema>);
|
|
37
|
-
};
|
|
38
|
-
type Meta = TypedMeta<Most>;
|
|
39
|
-
type Any = Primitive | OrCompound | AndCompound | Meta | Dynamic | Array | Hierarchy;
|
|
40
|
-
type Validator<Type> = (value: Type, data: any) => Type;
|
|
41
|
-
type Merge<ObjectA, ObjectB> = (keyof ObjectA extends never ? ObjectB : keyof ObjectB extends never ? ObjectA : ObjectA & ObjectB);
|
|
42
|
-
type Model<Schema extends Schema.Any> = (Schema.Any extends Schema ? unknown : Schema extends Primitive ? Map[Schema] : Schema extends OrCompound ? Model<Schema[0]> | Model<Schema[2]> : Schema extends AndCompound ? Model<Schema[0]> & Model<Schema[2]> : Schema extends Meta ? (Schema extends TypedMeta<infer MetaType> ? (Schema.Most extends MetaType ? unknown : Schema["required"] extends false ? Model<MetaType> | undefined : Model<MetaType>) : never) : Schema extends Dynamic ? {
|
|
43
|
-
[Key: string]: Model<Schema["$"]>;
|
|
44
|
-
} : Schema extends Array ? Model<Schema[0]>[] : Schema extends Hierarchy ? Merge<{
|
|
45
|
-
[Key in keyof Schema as Existent<Schema[Key]> extends true ? Key : never]: Model<Schema[Key]>;
|
|
46
|
-
}, {
|
|
47
|
-
[Key in keyof Schema as Existent<Schema[Key]> extends true ? never : Key]?: Model<Schema[Key]>;
|
|
48
|
-
}> : any);
|
|
49
|
-
type Source<Schema extends Schema.Any> = (Schema.Any extends Schema ? unknown : Schema extends Primitive ? Converted<Schema> : Schema extends OrCompound ? Source<Schema[0]> | Source<Schema[2]> : Schema extends AndCompound ? Source<Schema[0]> & Source<Schema[2]> : Schema extends Meta ? Source<Schema["type"]> : Schema extends Dynamic ? {
|
|
50
|
-
[Key: string]: Source<Schema["$"]>;
|
|
51
|
-
} : Schema extends Array ? Source<Schema[0]>[] : Schema extends Hierarchy ? Merge<{
|
|
52
|
-
[Key in keyof Schema as Optionality<Schema[Key]> extends true ? never : Key]: Source<Schema[Key]>;
|
|
53
|
-
}, {
|
|
54
|
-
[Key in keyof Schema as Optionality<Schema[Key]> extends true ? Key : never]?: Source<Schema[Key]>;
|
|
55
|
-
}> : any);
|
|
56
|
-
type Converted<Schema extends Schema.Primitive> = (Schema extends keyof ConversionMap ? ConversionMap[Schema][number] | Map[Schema] : Map[Schema]);
|
|
57
|
-
type Existent<Schema extends Schema.Any> = (Schema.Any extends Schema ? unknown : Schema extends Schema.Meta ? (Schema["required"] extends true ? true : (Schema extends {
|
|
58
|
-
default: any;
|
|
59
|
-
} ? true : false)) : Schema extends Schema.Array ? Existent<Schema[0]> : true);
|
|
60
|
-
type Optionality<Schema extends Schema.Any> = (Schema.Any extends Schema ? unknown : Schema extends Schema.Meta ? (Schema["required"] extends true ? (Schema extends {
|
|
61
|
-
default: any;
|
|
62
|
-
} ? true : false) : true) : Schema extends Schema.Array ? Optionality<Schema[0]> : false);
|
|
63
|
-
function registerConverter<FromTypeName extends keyof ConversionMap, ToTypeName extends keyof Map>(fromTypeName: FromTypeName, toTypeName: ToTypeName, converter: Converter<Map[FromTypeName], Map[ToTypeName]>): void;
|
|
64
|
-
function registerPrimitive<TypeName extends keyof Map>(typeName: TypeName): void;
|
|
65
|
-
function isSchemaPrimitive(value: any): value is Schema.Primitive;
|
|
66
|
-
function isSchemaOrCompound(value: any): value is Schema.OrCompound;
|
|
67
|
-
function isSchemaAndCompound(value: any): value is Schema.AndCompound;
|
|
68
|
-
function isSchemaMeta(value: any): value is Schema.Meta;
|
|
69
|
-
function isSchemaDynamic(value: any): value is Schema.Dynamic;
|
|
70
|
-
function isSchemaArray(value: any): value is Schema.Array;
|
|
71
|
-
function isSchemaHierarchy(value: any): value is Schema.Hierarchy;
|
|
72
|
-
function isSchema(value: any): value is Schema.Any;
|
|
73
|
-
function getType(value: any): string;
|
|
74
|
-
function build<Schema extends Schema.Any>(schema: Schema): Schema;
|
|
75
|
-
function validate<Schema extends Any>(schema: Schema, source: Source<Schema>): Model<Schema>;
|
|
76
|
-
function clone<Schema extends Schema.Any>(schema: Schema): Schema;
|
|
77
|
-
function assert(condition: boolean, message?: string): asserts condition;
|
|
78
|
-
type ValidationErrorType = "missing" | "incorrectType" | "invalidSchema" | "failedCustomValidator";
|
|
79
|
-
class Error extends globalThis.Error {
|
|
80
|
-
constructor(message?: string);
|
|
81
|
-
}
|
|
82
|
-
class ValidationError extends Error {
|
|
83
|
-
readonly type: ValidationErrorType;
|
|
84
|
-
readonly source: any;
|
|
85
|
-
readonly schema: Schema.Any;
|
|
86
|
-
readonly originalSource: any;
|
|
87
|
-
readonly originalSchema: Schema.Any;
|
|
88
|
-
readonly path: string[];
|
|
89
|
-
readonly customMessage?: string;
|
|
90
|
-
/**
|
|
91
|
-
* @param message The error message.
|
|
92
|
-
* @param type The type of validation error.
|
|
93
|
-
* @param source The data that failed validation.
|
|
94
|
-
* @param path The path to the value that failed validation.
|
|
95
|
-
*/
|
|
96
|
-
constructor(type: ValidationErrorType, schema: Schema.Any, source: any, path: string[], originalSchema: Schema.Any, originalSource: any, customMessage?: string);
|
|
97
|
-
static getExpectedString(schema: Schema.Any): string;
|
|
98
|
-
static getMessage(type: ValidationErrorType, source: any, schema: Schema.Any, path: string[]): string;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
1
|
+
export * from "./builder";
|
|
2
|
+
export { Schema as $ } from "./builder";
|
|
3
|
+
export * from "./error/ValidationError";
|
|
4
|
+
export * from "./error/ValidationPass";
|
|
5
|
+
export * from "./schema/AnySchema";
|
|
6
|
+
export * from "./schema/ArraySchema";
|
|
7
|
+
export * from "./schema/BaseSchema";
|
|
8
|
+
export * from "./schema/BooleanSchema";
|
|
9
|
+
export * from "./schema/DateSchema";
|
|
10
|
+
export * from "./schema/DynamicObjectSchema";
|
|
11
|
+
export * from "./schema/EnumerationSchema";
|
|
12
|
+
export * from "./schema/NumberSchema";
|
|
13
|
+
export * from "./schema/ObjectSchema";
|
|
14
|
+
export * from "./schema/OrSetSchema";
|
|
15
|
+
export * from "./schema/StringSchema";
|
|
16
|
+
export * from "./typing/extended";
|
|
17
|
+
export * from "./typing/toolbox";
|