@tsed/schema
Version:
JsonSchema module for Ts.ED Framework
36 lines (35 loc) • 925 B
JavaScript
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";
}