UNPKG

swagger-typed-express-docs

Version:

Simple express runtime parser and documentation swagger generator with 100% support of Typescript static types

75 lines (74 loc) 4.39 kB
import { NiceMerge } from './generics'; import { TObject } from './tsSchema'; export declare const tObject_omit: <TObj extends TObject, PropsToOmit extends (keyof TObj["properties"])[], NewProperties = Omit<TObj["properties"], PropsToOmit[number]> extends infer T ? { [K in keyof T]: Omit<TObj["properties"], PropsToOmit[number]>[K]; } : never, Out = Omit<TObj, "properties"> & { properties: NewProperties; } extends infer T_1 ? { [K_1 in keyof T_1]: (Omit<TObj, "properties"> & { properties: NewProperties; })[K_1]; } : never>(obj: TObj, ...attrsName: PropsToOmit) => Out; export declare const tObject_pick: <TObj extends TObject, PropsToPick extends (keyof TObj["properties"])[], NewProperties = Pick<TObj["properties"], PropsToPick[number]> extends infer T ? { [K in keyof T]: Pick<TObj["properties"], PropsToPick[number]>[K]; } : never, Out = Omit<TObj, "properties"> & { properties: NewProperties; } extends infer T_1 ? { [K_1 in keyof T_1]: (Omit<TObj, "properties"> & { properties: NewProperties; })[K_1]; } : never>(obj: TObj, ...attrsName: PropsToPick) => Out; export declare const tObject_partial: <TObj extends TObject>(obj: TObj) => Omit<TObj, "properties"> & { properties: { [K_1 in keyof TObj["properties"]]: Omit<TObj["properties"][K_1], "required"> & { required: false; } extends infer T_1 ? { [K_2 in keyof T_1]: (Omit<TObj["properties"][K_1], "required"> & { required: false; })[K_2]; } : never; }; } extends infer T ? { [K in keyof T]: (Omit<TObj, "properties"> & { properties: { [K_1 in keyof TObj["properties"]]: Omit<TObj["properties"][K_1], "required"> & { required: false; } extends infer T_1 ? { [K_2 in keyof T_1]: (Omit<TObj["properties"][K_1], "required"> & { required: false; })[K_2]; } : never; }; })[K]; } : never; export declare const tUnionObject: <T extends string, U>(type: T, attrs: U) => { properties: { type: { type: "enum"; options: [import("./generics").DeepWriteable<T>]; required: true; }; } & U; type: "object"; required: true; }; export declare const tUtils: { unionObject: <T extends string, U>(type: T, attrs: U) => { properties: { type: { type: "enum"; options: [import("./generics").DeepWriteable<T>]; required: true; }; } & U; type: "object"; required: true; }; tObject: { pick: <TObj extends TObject, PropsToPick extends (keyof TObj["properties"])[], NewProperties = Pick<TObj["properties"], PropsToPick[number]> extends infer T_1 ? { [K in keyof T_1]: Pick<TObj["properties"], PropsToPick[number]>[K]; } : never, Out = Omit<TObj, "properties"> & { properties: NewProperties; } extends infer T_2 ? { [K_1 in keyof T_2]: (Omit<TObj, "properties"> & { properties: NewProperties; })[K_1]; } : never>(obj: TObj, ...attrsName: PropsToPick) => Out; omit: <TObj_1 extends TObject, PropsToOmit extends (keyof TObj_1["properties"])[], NewProperties_1 = Omit<TObj_1["properties"], PropsToOmit[number]> extends infer T_3 ? { [K_2 in keyof T_3]: Omit<TObj_1["properties"], PropsToOmit[number]>[K_2]; } : never, Out_1 = Omit<TObj_1, "properties"> & { properties: NewProperties_1; } extends infer T_4 ? { [K_3 in keyof T_4]: (Omit<TObj_1, "properties"> & { properties: NewProperties_1; })[K_3]; } : never>(obj: TObj_1, ...attrsName: PropsToOmit) => Out_1; partial: <TObj_2 extends TObject>(obj: TObj_2) => Omit<TObj_2, "properties"> & { properties: { [K_5 in keyof TObj_2["properties"]]: Omit<TObj_2["properties"][K_5], "required"> & { required: false; } extends infer T_7 ? { [K_6 in keyof T_7]: (Omit<TObj_2["properties"][K_5], "required"> & { required: false; })[K_6]; } : never; }; } extends infer T_5 ? { [K_4 in keyof T_5]: (Omit<TObj_2, "properties"> & { properties: { [K_5 in keyof TObj_2["properties"]]: Omit<TObj_2["properties"][K_5], "required"> & { required: false; } extends infer T_6 ? { [K_6 in keyof T_6]: (Omit<TObj_2["properties"][K_5], "required"> & { required: false; })[K_6]; } : never; }; })[K_4]; } : never; }; };