UNPKG

3.8 kBTypeScriptView Raw
1import { ClientException } from './logger';
2declare type NumberContraints = {
3 min?: number;
4 max?: number;
5};
6declare type StringContraints = {
7 minLen?: number;
8 maxLen?: number;
9 regexp?: RegExp;
10};
11declare type ArrayContraints = {
12 minSize?: number;
13 maxSize?: number;
14};
15declare type DateContraints = {
16 min?: Date | undefined;
17 max?: Date | undefined;
18};
19declare type NullableMethods<T> = {
20 [P in Exclude<keyof T, 'nullable'>]: T[P] extends (value: infer Value, constraints: infer Constraints) => infer Return ? (value: Value | undefined, constraints: Constraints) => Return | undefined : never;
21};
22declare class NullableAssert implements NullableMethods<Assert> {
23 protected assert: Assert;
24 signedFloat(value: number | undefined, constraints?: NumberContraints): number | undefined;
25 uFloat(value: number | undefined, constraints?: NumberContraints): number | undefined;
26 signedInt(value: number | undefined, constraints?: NumberContraints): number | undefined;
27 uInt(value: number | undefined, constraints?: NumberContraints): number | undefined;
28 string(value: string | undefined, constraints?: StringContraints): string | undefined;
29 noEmptyString(value: string | undefined, constraints?: StringContraints): string | undefined;
30 date(value: Date | undefined, constraints?: DateContraints): Date | undefined;
31 array<T>(value: readonly T[] | undefined, constraints?: ArrayContraints): readonly T[] | undefined;
32 noEmptyArray<T>(value: readonly T[] | undefined, constraints?: ArrayContraints): readonly T[] | undefined;
33 bool(value: boolean | undefined): boolean | undefined;
34 email(value: string | undefined): string | undefined;
35 object<T extends object>(value: T | undefined): T | undefined;
36 noEmptyObject<T extends object>(value: T | undefined): T | undefined;
37 union<T extends U, U>(value: T | undefined, union: readonly U[]): T | undefined;
38 enum(value: string | number | undefined, Enum: {
39 [key: number]: string;
40 }): string | number | undefined;
41 constructor(assert: Assert);
42}
43export declare class Assert {
44 protected ErrorFactory: typeof ClientException;
45 constructor(ErrorFactory: typeof ClientException);
46 nullable: NullableAssert;
47 protected error(name: string, json: object): void;
48 protected validateNumber(value: number, constraints: NumberContraints | undefined): void;
49 protected between(value: number, min: number | undefined, max: number | undefined, error: string): void;
50 protected validateUnsigned(value: number): void;
51 protected validateInt(value: number): void;
52 signedFloat(value: number, constraints?: NumberContraints): number;
53 uFloat(value: number, constraints?: NumberContraints): number;
54 signedInt(value: number, constraints?: NumberContraints): number;
55 uInt(value: number, constraints?: NumberContraints): number;
56 string(value: string, constraints?: StringContraints): string;
57 noEmptyString(value: string, constraints?: StringContraints): string;
58 date(value: Date, constraints?: DateContraints): Date;
59 array<T>(value: readonly T[], constraints?: {
60 minSize?: number;
61 maxSize?: number;
62 }): readonly T[];
63 noEmptyArray<T>(value: readonly T[], constraints?: {
64 minSize?: number;
65 maxSize?: number;
66 }): readonly T[];
67 bool(value: boolean): boolean;
68 email(value: string): string;
69 object<T extends object>(value: T): T;
70 noEmptyObject<T extends object>(value: T): T;
71 union<T extends U, U>(value: T, union: readonly U[]): T;
72 enum(value: number | string, Enum: {
73 [key: number]: string;
74 }): string | number;
75}
76export declare const assert: Assert;
77export declare const clientValidation: Assert;
78export {};
79//# sourceMappingURL=assert.d.ts.map
\No newline at end of file