import { DtoNumber, DtoString, DtoBoolean, DtoBigInt, DtoDate, DtoAny, DtoNull, } from "./type-base" import { DtoRegExp, DtoMap, DtoSet, DtoBlob, DtoFile, DtoArrayBuffer, DtoDataView, DtoInt8Array, DtoInt16Array, DtoInt32Array, DtoUint8Array, DtoUint8ClampedArray, DtoUint16Array, DtoUint32Array, DtoFloat32Array, DtoFloat64Array, DtoBigInt64Array, DtoBigUint64Array, } from "./type-extended" import { dtoOr } from "./type-logic" import { DtoArray, DtoObject } from "./type-object" import { toNullable, toOptional } from "./type-optional" import { dtoToOptional, dtoToNullable, dtoToRequired } from "./type-convert" const dtoOptional = { Number: toOptional(DtoNumber), String: toOptional(DtoString), Boolean: toOptional(DtoBoolean), BigInt: toOptional(DtoBigInt), Date: toOptional(DtoDate), Null: toOptional(DtoNull), RegExp: toOptional(DtoRegExp), Map: toOptional(DtoMap), Set: toOptional(DtoSet), Blob: toOptional(DtoBlob), File: toOptional(DtoFile), ArrayBuffer: toOptional(DtoArrayBuffer), DataView: toOptional(DtoDataView), Int8Array: toOptional(DtoInt8Array), Int16Array: toOptional(DtoInt16Array), Int32Array: toOptional(DtoInt32Array), Uint8Array: toOptional(DtoUint8Array), Uint8ClampedArray: toOptional(DtoUint8ClampedArray), Uint16Array: toOptional(DtoUint16Array), Uint32Array: toOptional(DtoUint32Array), Float32Array: toOptional(DtoFloat32Array), Float64Array: toOptional(DtoFloat64Array), BigInt64Array: toOptional(DtoBigInt64Array), BigUint64Array: toOptional(DtoBigUint64Array), Any: toOptional(DtoAny), Array: toOptional(DtoArray), Object: toOptional(DtoObject), or: toOptional(dtoOr), } const dtoNullable = { Number: toNullable(DtoNumber), String: toNullable(DtoString), Boolean: toNullable(DtoBoolean), BigInt: toNullable(DtoBigInt), Date: toNullable(DtoDate), Null: toNullable(DtoNull), RegExp: toNullable(DtoRegExp), Map: toNullable(DtoMap), Set: toNullable(DtoSet), Blob: toNullable(DtoBlob), File: toNullable(DtoFile), ArrayBuffer: toNullable(DtoArrayBuffer), DataView: toNullable(DtoDataView), Int8Array: toNullable(DtoInt8Array), Int16Array: toNullable(DtoInt16Array), Int32Array: toNullable(DtoInt32Array), Uint8Array: toNullable(DtoUint8Array), Uint8ClampedArray: toNullable(DtoUint8ClampedArray), Uint16Array: toNullable(DtoUint16Array), Uint32Array: toNullable(DtoUint32Array), Float32Array: toNullable(DtoFloat32Array), Float64Array: toNullable(DtoFloat64Array), BigInt64Array: toNullable(DtoBigInt64Array), BigUint64Array: toNullable(DtoBigUint64Array), Any: toNullable(DtoAny), Array: toNullable(DtoArray), Object: toNullable(DtoObject), or: toNullable(dtoOr), } export const dto = { Number: DtoNumber, String: DtoString, Boolean: DtoBoolean, BigInt: DtoBigInt, Date: DtoDate, Null: DtoNull, RegExp: DtoRegExp, Map: DtoMap, Set: DtoSet, Blob: DtoBlob, File: DtoFile, ArrayBuffer: DtoArrayBuffer, DataView: DtoDataView, Int8Array: DtoInt8Array, Int16Array: DtoInt16Array, Int32Array: DtoInt32Array, Uint8Array: DtoUint8Array, Uint8ClampedArray: DtoUint8ClampedArray, Uint16Array: DtoUint16Array, Uint32Array: DtoUint32Array, Float32Array: DtoFloat32Array, Float64Array: DtoFloat64Array, BigInt64Array: DtoBigInt64Array, BigUint64Array: DtoBigUint64Array, Any: DtoAny, Array: DtoArray, Object: DtoObject, optional: dtoOptional, nullable: dtoNullable, or: dtoOr, toOptional: dtoToOptional, toNullable: dtoToNullable, toRequired: dtoToRequired, }