badmfck-api-server 3.9.81 → 3.9.83
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.
@@ -12,7 +12,7 @@ export interface IDBQueryField {
|
|
12
12
|
fields?: Record<string, number | boolean | string | null>;
|
13
13
|
}
|
14
14
|
export interface IDBQueryFields {
|
15
|
-
[key: string]: string | number | boolean | IDBQueryField | null;
|
15
|
+
[key: string]: string | number | boolean | IDBQueryField | null | undefined;
|
16
16
|
}
|
17
17
|
export interface IDBQuery {
|
18
18
|
dbid?: string;
|
@@ -48,19 +48,24 @@ type ExtractOptionalFieldNames<T> = {
|
|
48
48
|
[K in (keyof T & string) as HasOptional<T, K> extends true ? K : never]: true;
|
49
49
|
};
|
50
50
|
type OptionalFields<T> = keyof ExtractOptionalFieldNames<T> & string;
|
51
|
-
type ValuesArr<T, K extends string> = `$__${K}_values` extends keyof T ? T[`$__${K}_values`] extends readonly (infer V)[] ? readonly V[] : never : `$__${K}` extends keyof T ? T[`$__${K}`] extends {
|
51
|
+
type ValuesArr<T, K extends string> = `$__${K}_values` extends keyof T ? T[`$__${K}_values`] extends readonly (infer V)[] ? readonly V[] : T[`$__${K}_values`] extends (infer V)[] ? readonly V[] : T[`$__${K}_values`] extends Record<string, infer V> ? readonly V[] : never : `$__${K}` extends keyof T ? T[`$__${K}`] extends {
|
52
52
|
values: readonly (infer V)[];
|
53
|
+
} ? readonly V[] : T[`$__${K}`] extends {
|
54
|
+
values: (infer V)[];
|
55
|
+
} ? readonly V[] : T[`$__${K}`] extends {
|
56
|
+
values: Record<string, infer V>;
|
53
57
|
} ? readonly V[] : never : never;
|
54
58
|
type ExtractEnumValues<T> = {
|
55
59
|
[K in (keyof T & string) as IsNever<ValuesArr<T, K>> extends true ? never : K]: ValuesArr<T, K> extends ReadonlyArray<infer V> ? V : never;
|
56
60
|
};
|
57
61
|
type EnumFieldNames<T> = keyof ExtractEnumValues<T> & string;
|
58
62
|
type EnumFieldValues<T> = ExtractEnumValues<T>;
|
59
|
-
type
|
63
|
+
type FieldOriginal<T, K extends PropertyKey> = K extends keyof T ? T[K] : never;
|
64
|
+
type ProcessValue<T, K extends keyof CleanFields<T>> = FieldOriginal<T, K> extends ReadonlyArray<infer Item> ? Item extends object ? ValidationModel<Item>[] : WidenLiteral<Item>[] : FieldOriginal<T, K> extends Array<infer Item> ? Item extends object ? ValidationModel<Item>[] : WidenLiteral<Item>[] : FieldOriginal<T, K> extends (...a: any[]) => any ? FieldOriginal<T, K> : FieldOriginal<T, K> extends object ? ValidationModel<FieldOriginal<T, K>> : WidenLiteral<FieldOriginal<T, K>>;
|
60
65
|
export type ValidationModel<T> = DeepMutable<{
|
61
|
-
[K in keyof CleanFields<T> as K extends OptionalFields<T> ? K : never]?: K extends EnumFieldNames<T> ? EnumFieldValues<T>[K] :
|
66
|
+
[K in keyof CleanFields<T> as K extends OptionalFields<T> ? K : never]?: K extends EnumFieldNames<T> ? EnumFieldValues<T>[K] : ProcessValue<T, K>;
|
62
67
|
} & {
|
63
|
-
[K in keyof CleanFields<T> as K extends OptionalFields<T> ? never : K]: K extends EnumFieldNames<T> ? EnumFieldValues<T>[K] :
|
68
|
+
[K in keyof CleanFields<T> as K extends OptionalFields<T> ? never : K]: K extends EnumFieldNames<T> ? EnumFieldValues<T>[K] : ProcessValue<T, K>;
|
64
69
|
}>;
|
65
70
|
export declare class Validator {
|
66
71
|
static validateObject(fields: string[], object: any): boolean;
|