UNPKG

payload-is

Version:

A comprehensive TypeScript/JavaScript type checking library providing functions to check data types, collections, primitives, and built-in objects

101 lines (97 loc) 1.97 kB
'use strict'; var type = require('./type.cjs'); const FunctionTag = [ "Function", "AsyncFunction", "GeneratorFunction", "AsyncGeneratorFunction" ]; function toFunctionTag(data) { const tag = type.getTag(data); return FunctionTag.includes(tag) ? tag : "Function"; } const ObjectTag = [ // iterator "Segmenter String Iterator", "RegExp String Iterator", "String Iterator", "Array Iterator", "Map Iterator", "Set Iterator", "Generator", "Iterator", "AsyncGenerator", "AsyncIterator", // buffer "ArrayBuffer", "SharedArrayBuffer", "DataView", "Int8Array", "Uint8Array", "Int16Array", "Uint16Array", "Int32Array", "Uint32Array", "Float32Array", "Float64Array", "BigInt64Array", "BigUint64Array", // object "String", "Number", "BigInt", "Boolean", "Symbol", "Error", "Array", "Set", "Map", "WeakSet", "WeakMap", "WeakRef", "Promise", "Date", "RegExp", "URL", "URLSearchParams", "File", "Blob", "FormData", "Headers", "Request", "Response", "Arguments", "Atomics", "JSON", "Reflect", "Object" ]; function toObjectTag(data) { const tag = type.getTag(data); return ObjectTag.includes(tag) ? tag : "Object"; } function getDataType(data) { switch (typeof data) { case "undefined": return { type: "undefined", data }; case "number": return { type: "number", data }; case "bigint": return { type: "bigint", data }; case "boolean": return { type: "boolean", data }; case "string": return { type: "string", data }; case "symbol": return { type: "symbol", data }; case "function": return { type: "function", subtype: toFunctionTag(data), data }; case "object": if (data === null) { return { type: "null", data }; } return { type: "object", subtype: toObjectTag(data), data }; } } exports.getDataType = getDataType; //# sourceMappingURL=dataType.cjs.map