payload-is
Version:
A comprehensive TypeScript/JavaScript type checking library providing functions to check data types, collections, primitives, and built-in objects
1 lines • 4.62 kB
Source Map (JSON)
{"version":3,"file":"dataType.cjs","sources":["../../src/dataType.ts"],"sourcesContent":["import { getTag } from \"./type.ts\";\nimport type { DataTypeResult } from \"./type.ts\";\n\n// Function\nconst FunctionTag = [\n \"Function\",\n \"AsyncFunction\",\n \"GeneratorFunction\",\n \"AsyncGeneratorFunction\",\n] as const;\ntype FunctionTag = (typeof FunctionTag)[number];\nfunction toFunctionTag(data: Function): FunctionTag {\n const tag = getTag(data);\n return FunctionTag.includes(tag as FunctionTag)\n ? (tag as FunctionTag)\n : \"Function\";\n}\n\n// object\nconst ObjectTag = [\n // iterator\n \"Segmenter String Iterator\",\n \"RegExp String Iterator\",\n \"String Iterator\",\n \"Array Iterator\",\n \"Map Iterator\",\n \"Set Iterator\",\n \"Generator\",\n \"Iterator\",\n \"AsyncGenerator\",\n \"AsyncIterator\",\n // buffer\n \"ArrayBuffer\",\n \"SharedArrayBuffer\",\n \"DataView\",\n \"Int8Array\",\n \"Uint8Array\",\n \"Int16Array\",\n \"Uint16Array\",\n \"Int32Array\",\n \"Uint32Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n // object\n \"String\",\n \"Number\",\n \"BigInt\",\n \"Boolean\",\n \"Symbol\",\n \"Error\",\n \"Array\",\n \"Set\",\n \"Map\",\n \"WeakSet\",\n \"WeakMap\",\n \"WeakRef\",\n \"Promise\",\n \"Date\",\n \"RegExp\",\n \"URL\",\n \"URLSearchParams\",\n \"File\",\n \"Blob\",\n \"FormData\",\n \"Headers\",\n \"Request\",\n \"Response\",\n \"Arguments\",\n \"Atomics\",\n \"JSON\",\n \"Reflect\",\n \"Object\",\n] as const;\ntype ObjectTag = (typeof ObjectTag)[number];\nfunction toObjectTag(data: object): ObjectTag {\n const tag = getTag(data);\n return ObjectTag.includes(tag as ObjectTag) ? (tag as ObjectTag) : \"Object\";\n}\n\nexport function getDataType(data: unknown): DataTypeResult {\n switch (typeof data) {\n case \"undefined\":\n return { type: \"undefined\", data } as const;\n case \"number\":\n return { type: \"number\", data } as const;\n case \"bigint\":\n return { type: \"bigint\", data } as const;\n case \"boolean\":\n return { type: \"boolean\", data } as const;\n case \"string\":\n return { type: \"string\", data } as const;\n case \"symbol\":\n return { type: \"symbol\", data } as const;\n case \"function\":\n return { type: \"function\", subtype: toFunctionTag(data), data } as any;\n case \"object\":\n if (data === null) {\n return { type: \"null\", data } as const;\n }\n return { type: \"object\", subtype: toObjectTag(data), data } as any;\n }\n}\n"],"names":["getTag"],"mappings":";;;;AAIA,MAAM,WAAc,GAAA;AAAA,EAClB,UAAA;AAAA,EACA,eAAA;AAAA,EACA,mBAAA;AAAA,EACA;AACF,CAAA;AAEA,SAAS,cAAc,IAA6B,EAAA;AAClD,EAAM,MAAA,GAAA,GAAMA,YAAO,IAAI,CAAA;AACvB,EAAA,OAAO,WAAY,CAAA,QAAA,CAAS,GAAkB,CAAA,GACzC,GACD,GAAA,UAAA;AACN;AAGA,MAAM,SAAY,GAAA;AAAA;AAAA,EAEhB,2BAAA;AAAA,EACA,wBAAA;AAAA,EACA,iBAAA;AAAA,EACA,gBAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,WAAA;AAAA,EACA,UAAA;AAAA,EACA,gBAAA;AAAA,EACA,eAAA;AAAA;AAAA,EAEA,aAAA;AAAA,EACA,mBAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,YAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,cAAA;AAAA,EACA,eAAA;AAAA,EACA,gBAAA;AAAA;AAAA,EAEA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,OAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,KAAA;AAAA,EACA,iBAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,UAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA;AAEA,SAAS,YAAY,IAAyB,EAAA;AAC5C,EAAM,MAAA,GAAA,GAAMA,YAAO,IAAI,CAAA;AACvB,EAAA,OAAO,SAAU,CAAA,QAAA,CAAS,GAAgB,CAAA,GAAK,GAAoB,GAAA,QAAA;AACrE;AAEO,SAAS,YAAY,IAA+B,EAAA;AACzD,EAAA,QAAQ,OAAO,IAAM;AAAA,IACnB,KAAK,WAAA;AACH,MAAO,OAAA,EAAE,IAAM,EAAA,WAAA,EAAa,IAAK,EAAA;AAAA,IACnC,KAAK,QAAA;AACH,MAAO,OAAA,EAAE,IAAM,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAChC,KAAK,QAAA;AACH,MAAO,OAAA,EAAE,IAAM,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAChC,KAAK,SAAA;AACH,MAAO,OAAA,EAAE,IAAM,EAAA,SAAA,EAAW,IAAK,EAAA;AAAA,IACjC,KAAK,QAAA;AACH,MAAO,OAAA,EAAE,IAAM,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAChC,KAAK,QAAA;AACH,MAAO,OAAA,EAAE,IAAM,EAAA,QAAA,EAAU,IAAK,EAAA;AAAA,IAChC,KAAK,UAAA;AACH,MAAA,OAAO,EAAE,IAAM,EAAA,UAAA,EAAY,SAAS,aAAc,CAAA,IAAI,GAAG,IAAK,EAAA;AAAA,IAChE,KAAK,QAAA;AACH,MAAA,IAAI,SAAS,IAAM,EAAA;AACjB,QAAO,OAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,IAAK,EAAA;AAAA;AAE9B,MAAA,OAAO,EAAE,IAAM,EAAA,QAAA,EAAU,SAAS,WAAY,CAAA,IAAI,GAAG,IAAK,EAAA;AAAA;AAEhE;;;;"}