swagger-typed-express-docs
Version:
Simple express runtime parser and documentation swagger generator with 100% support of Typescript static types
347 lines (346 loc) • 11.8 kB
TypeScript
export { jsValueToSchema, tSchemaToJSValue } from './jsValueToSchema';
export { InferSchemaType, TSchema } from './tsSchema';
export { convertSchemaToYupValidationObject as _convertSchemaToYupValidationObject, getTSchemaValidator, normalizeYupError, } from './runtimeSchemaValidation';
export { apiDoc, getApiDocInstance, getMock_apiDocInstance, initApiDocs, mock_apiDoc, } from './typedExpressDocs';
export { tSchemaToTypescript } from './tSchemaToTypescript';
export { codegenSchemaToJSCode } from './codegen';
export { tUtils } from './tUtils';
export declare const T: {
cast: {
date: {
type: "transformType";
encodedTSchema: {
type: "string";
required: true;
};
decodedTSchema: {
type: "any";
required: true;
};
syncDecoder: (value: any) => Date;
syncEncoder: (value: Date) => string;
required: true;
};
null_date: {
type: "transformType";
encodedTSchema: {
type: "string";
required: false;
};
decodedTSchema: {
type: "any";
required: false;
};
syncDecoder: (value: any) => Date;
syncEncoder: (value: Date) => string;
required: false;
};
number: {
type: "transformType";
encodedTSchema: {
type: "string";
required: true;
};
decodedTSchema: {
type: "number";
required: true;
};
syncDecoder: (value: any) => number;
syncEncoder: (value: number) => string;
required: true;
};
null_number: {
type: "transformType";
encodedTSchema: {
type: "string";
required: false;
};
decodedTSchema: {
type: "number";
required: false;
};
syncDecoder: (value: any) => number;
syncEncoder: (value: number) => string;
required: false;
};
boolean: {
type: "transformType";
encodedTSchema: {
type: "enum";
options: ["true", "false"];
required: true;
};
decodedTSchema: {
type: "boolean";
required: true;
};
syncDecoder: (value: any) => boolean;
syncEncoder: (value: boolean) => "true" | "false";
required: true;
};
null_boolean: {
type: "transformType";
encodedTSchema: {
type: "enum";
options: ["true", "false"];
required: false;
};
decodedTSchema: {
type: "boolean";
required: false;
};
syncDecoder: (value: any) => boolean;
syncEncoder: (value: boolean) => "true" | "false";
required: false;
};
isoToJSDate: {
type: "transformType";
encodedTSchema: {
type: "enum";
options: ["true", "false"];
required: true;
};
decodedTSchema: {
type: "boolean";
required: true;
};
syncDecoder: (value: any) => boolean;
syncEncoder: (value: boolean) => "true" | "false";
required: true;
};
null_isoToJSDate: {
type: "transformType";
encodedTSchema: {
type: "enum";
options: ["true", "false"];
required: false;
};
decodedTSchema: {
type: "boolean";
required: false;
};
syncDecoder: (value: any) => boolean;
syncEncoder: (value: boolean) => "true" | "false";
required: false;
};
};
extra: {
minMaxNumber: (min: number, max: number) => {
type: "number";
required: true;
} & {
validator: (val: number) => void;
};
null_minMaxNum: (min: number, max: number) => {
type: "number";
validator: (val: number) => void;
required: false;
};
ISOString: {
type: "string";
required: true;
} & {
validator: (val: string) => void;
};
null_ISOString: {
type: "string";
validator: (val: string) => void;
required: false;
};
minMaxString: (min: number, max: number) => {
type: "string";
required: true;
} & {
validator: (val: string) => void;
};
null_minMaxString: (min: number, max: number) => {
type: "string";
validator: (val: string) => void;
required: false;
};
toListIfNot: <T extends import("./tsSchema").TSchema>(tSchema: T) => {
type: "transformType";
encodedTSchema: {
type: "oneOf";
options: [import("./generics").DeepWriteable<T>, import("./generics").DeepWriteable<{
type: "array";
items: T;
required: true;
}>];
required: true;
};
decodedTSchema: {
type: "array";
items: T;
required: true;
};
required: true;
syncDecoder: (value: any) => any[];
syncEncoder: (value: any[]) => any[];
};
null_toListIfNot: <T_1 extends import("./tsSchema").TSchema>(arg: T_1) => {
type: "transformType";
encodedTSchema: {
type: "oneOf";
options: [import("./generics").DeepWriteable<T_1>, import("./generics").DeepWriteable<{
type: "array";
items: T_1;
required: true;
}>];
required: true;
};
decodedTSchema: {
type: "array";
items: T_1;
required: true;
};
syncDecoder: (value: any) => any[];
syncEncoder: (value: any[]) => any[];
required: false;
};
};
number: {
type: "number";
required: true;
};
null_number: {
type: "number";
required: false;
};
boolean: {
type: "boolean";
required: true;
};
null_boolean: {
type: "boolean";
required: false;
};
string: {
type: "string";
required: true;
};
null_string: {
type: "string";
required: false;
};
any: {
type: "any";
required: true;
};
null_any: {
type: "any";
required: false;
};
oneOf: <T_2 extends readonly Record<any, any>[] | Record<any, any>[]>(options: T_2) => {
type: "oneOf";
options: import("./generics").DeepWriteable<T_2>;
required: true;
};
null_oneOf: <T_3 extends readonly Record<any, any>[] | Record<any, any>[]>(options: T_3) => {
type: "oneOf";
options: import("./generics").DeepWriteable<T_3>;
required: false;
};
enum: <T_4 extends readonly (string | number | boolean)[] | (string | number | boolean)[]>(options: T_4) => {
type: "enum";
options: import("./generics").DeepWriteable<T_4>;
required: true;
};
null_enum: <T_5 extends readonly (string | number | boolean)[] | (string | number | boolean)[]>(options: T_5) => {
type: "enum";
options: import("./generics").DeepWriteable<T_5>;
required: false;
};
object: <T_6 extends Record<string, import("./tsSchema").TSchema>>(args: T_6) => {
properties: T_6;
type: "object";
required: true;
};
null_object: <T_7 extends Record<string, import("./tsSchema").TSchema>>(args: T_7) => {
properties: T_7;
type: "object";
required: false;
};
list: <T_8 extends import("./tsSchema").TSchema>(items: T_8) => {
type: "array";
items: T_8;
required: true;
};
null_list: <T_9 extends import("./tsSchema").TSchema>(items: T_9) => {
type: "array";
items: T_9;
required: false;
};
hashMap: <T_10 extends import("./tsSchema").TSchema>(args: T_10) => {
type: "hashMap";
property: T_10;
required: true;
};
null_hashMap: <T_11 extends import("./tsSchema").TSchema>(args: T_11) => {
type: "hashMap";
property: T_11;
required: false;
};
transformType: <EncodedTSchema extends import("./tsSchema").TSchema, DecodedTSchema extends import("./tsSchema").TSchema, R, RR>(encodedTSchema: EncodedTSchema, decodedTSchema: DecodedTSchema, syncDecoder: (value: any) => R, syncEncoder?: (value: R) => RR) => {
type: "transformType";
encodedTSchema: EncodedTSchema;
decodedTSchema: DecodedTSchema;
required: true;
syncDecoder: (value: any) => R;
syncEncoder: (value: R) => RR;
};
addValidator: <T_12 extends import("./tsSchema").TSchema>(schema: T_12, validator: (val: import("./tsSchema").InferSchemaType<T_12>) => void) => T_12 & {
validator: (val: import("./tsSchema").InferSchemaType<T_12>) => void;
};
deepNullable: (schema: import("./tsSchema").TSchema) => any;
nonNullable: <T_13 extends {
required: any;
}>(a: T_13) => Omit<T_13, "required"> & {
required: true;
} extends infer T_14 ? { [K in keyof T_14]: (Omit<T_13, "required"> & {
required: true;
})[K]; } : never;
nullable: <T_15 extends {
required: any;
}>(a: T_15) => Omit<T_15, "required"> & {
required: false;
} extends infer T_16 ? { [K_1 in keyof T_16]: (Omit<T_15, "required"> & {
required: false;
})[K_1]; } : never;
nullableTransform: <T_17 extends {
encodedTSchema: {
required: boolean;
};
decodedTSchema: {
required: boolean;
};
}>(a: T_17) => Omit<T_17, "encodedTSchema" | "decodedTSchema"> & {
encodedTSchema: Omit<T_17["encodedTSchema"], "required"> & {
required: false;
} extends infer T_21 ? { [K_3 in keyof T_21]: (Omit<T_17["encodedTSchema"], "required"> & {
required: false;
})[K_3]; } : never;
decodedTSchema: Omit<T_17["decodedTSchema"], "required"> & {
required: false;
} extends infer T_22 ? { [K_4 in keyof T_22]: (Omit<T_17["decodedTSchema"], "required"> & {
required: false;
})[K_4]; } : never;
} extends infer T_18 ? { [K_2 in keyof T_18]: (Omit<T_17, "encodedTSchema" | "decodedTSchema"> & {
encodedTSchema: Omit<T_17["encodedTSchema"], "required"> & {
required: false;
} extends infer T_19 ? { [K_3 in keyof T_19]: (Omit<T_17["encodedTSchema"], "required"> & {
required: false;
})[K_3]; } : never;
decodedTSchema: Omit<T_17["decodedTSchema"], "required"> & {
required: false;
} extends infer T_20 ? { [K_4 in keyof T_20]: (Omit<T_17["decodedTSchema"], "required"> & {
required: false;
})[K_4]; } : never;
})[K_2]; } : never;
lazy: (name: string, tSchema: () => any) => {
type: "lazy";
name: string;
required: boolean;
getSchema: () => any;
};
};