1 | import { ClientException } from './logger';
|
2 | declare type NumberContraints = {
|
3 | min?: number;
|
4 | max?: number;
|
5 | };
|
6 | declare type StringContraints = {
|
7 | minLen?: number;
|
8 | maxLen?: number;
|
9 | regexp?: RegExp;
|
10 | };
|
11 | declare type ArrayContraints = {
|
12 | minSize?: number;
|
13 | maxSize?: number;
|
14 | };
|
15 | declare type DateContraints = {
|
16 | min?: Date | undefined;
|
17 | max?: Date | undefined;
|
18 | };
|
19 | declare 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 | };
|
22 | declare 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 | }
|
43 | export 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 | }
|
76 | export declare const assert: Assert;
|
77 | export declare const clientValidation: Assert;
|
78 | export {};
|
79 |
|
\ | No newline at end of file |