specified
Version:
Type-safe typescript data specification verification
289 lines (288 loc) • 7.67 kB
TypeScript
export declare const Constraint: {
generic: {
oneOf: <T>(...options: T[]) => {
version: 1;
definition: {
name: string;
settings: {
options: T[];
};
};
eval: (value: T) => {
err: {
code: string;
value: T;
allowed: T[];
message: string;
} | null;
};
};
};
number: {
integer: {
version: 1;
definition: {
name: string;
};
eval: (value: number) => {
err: {
code: string;
value: number;
message: string;
} | null;
};
};
finite: {
version: 1;
definition: {
name: string;
};
eval: (value: number) => {
err: {
code: string;
value: number;
message: string;
} | null;
};
};
above: (lowerLimit: number) => {
version: 1;
definition: {
name: string;
settings: {
lowerLimit: number;
};
};
eval: (value: number) => {
err: {
code: string;
value: number;
message: string;
} | null;
};
};
below: (upperLimit: number) => {
version: 1;
definition: {
name: string;
settings: {
upperLimit: number;
};
};
eval: (value: number) => {
err: {
code: string;
value: number;
message: string;
} | null;
};
};
atLeast: (lowerLimit: number) => {
version: 1;
definition: {
name: string;
settings: {
lowerLimit: number;
};
};
eval: (value: number) => {
err: {
code: string;
value: number;
message: string;
} | null;
};
};
atMost: (upperLimit: number) => {
version: 1;
definition: {
name: string;
settings: {
upperLimit: number;
};
};
eval: (value: number) => {
err: {
code: string;
value: number;
message: string;
} | null;
};
};
};
string: {
notEmpty: {
version: 1;
definition: {
name: string;
};
eval: (value: string) => {
err: {
code: string;
value: string;
message: string;
} | null;
};
};
length: ({ min, max }: {
min?: number | undefined;
max: number;
} | {
min: number;
max?: number | undefined;
}) => {
version: 1;
definition: {
name: string;
settings: {
min: number | undefined;
max: number | undefined;
};
};
eval: (value: string) => {
err: {
code: string;
value: string;
message: string;
};
} | {
err: null;
};
};
regex: (re: RegExp, custom?: {
errorMessage: string;
errorCode: string;
}) => {
version: 1;
definition: {
name: string;
settings: {
expression: string;
};
};
eval: (value: string) => {
err: {
code: string;
value: string;
allowed: string;
message: string;
} | null;
};
};
startsWith: (prefix: string) => {
version: 1;
definition: {
name: string;
settings: {
prefix: string;
};
};
eval: (value: string) => {
err: {
code: string;
value: string;
message: string;
} | null;
};
};
endsWith: (suffix: string) => {
version: 1;
definition: {
name: string;
settings: {
suffix: string;
};
};
eval: (value: string) => {
err: {
code: string;
value: string;
message: string;
} | null;
};
};
};
map: {
size: <T extends {}>({ min, max }: {
min?: number | undefined;
max: number;
} | {
min: number;
max?: number | undefined;
}) => {
version: 1;
definition: {
name: string;
settings: {
min: number | undefined;
max: number | undefined;
};
};
eval: (value: T) => {
err: {
code: string;
value: T;
message: string;
};
} | {
err: null;
};
};
};
array: {
length: <T>({ min, max }: {
min?: number | undefined;
max: number;
} | {
min: number;
max?: number | undefined;
}) => {
version: 1;
definition: {
name: string;
settings: {
min: number | undefined;
max: number | undefined;
};
};
eval: (value: T[]) => {
err: {
code: string;
value: T[];
message: string;
} | null;
};
};
includes: <T>(includedValue: T) => {
version: 1;
definition: {
name: string;
settings: {
value: T;
};
};
eval: (value: T[]) => {
err: {
code: string;
value: T[];
message: string;
} | null;
};
};
unique: <U, T extends U>(equalsFunc?: (a: U, b: U) => boolean) => {
version: 1;
definition: {
name: string;
};
eval: (value: T[]) => {
err: {
code: string;
value: T[];
message: string;
};
} | {
err: null;
};
};
};
};