UNPKG

@tsed/schema

Version:
36 lines (35 loc) 925 B
import { isArray, isBuffer, isDate, isPrimitiveOrPrimitiveClass, primitiveOf } from "@tsed/core"; /** * @ignore */ export const JSON_TYPES = ["string", "number", "integer", "boolean", "object", "array", "null", "any"]; export function getJsonType(value) { if (value === null) { return "null"; } if (isPrimitiveOrPrimitiveClass(value)) { if (JSON_TYPES.indexOf(value) > -1) { return value; } if (typeof value === "string") { if (value === "file") { return "file"; } return "generic"; } return primitiveOf(value); } if (value === Array) { return "array"; } if (isArray(value)) { return value.map(getJsonType); } if (value === Set) { return "array"; } if (isDate(value) || isBuffer(value)) { return "string"; } return "object"; }