UNPKG

mongo-schema-genrator

Version:

An module to convert normal JS object to Mongo Schema

24 lines (18 loc) 1.2 kB
function getType(thing, _default, key, options = {}) { let req = options.required || []; let unq = options.unique || []; let _t = typeof (thing), doo = false; let defaults = { Boolean: thing, Number: parseInt(thing) || 0, String: "'" + thing + "'" || "''", Array: thing || "[]", Object: thing || "{}", } if (!req.some(v => v === key) && !unq.some(v => v === key)) doo = true; let type = _t === "boolean" ? "Boolean" : _t === "number" ? "Number" : _t === "symbol" ? "String" : _t === "string" ? "String" : _t === "object" ? "Object" : undefined; if (_default && ((type === "object" && Object.keys(thing).length === 0) || type !== "Object")) type = `{ type: ${type}${doo ? `,default:${defaults[type]}` : ""}${req.some(v => v === key) ? ", required: true" : ""} ${unq.some(v => v === key) ? ", unqiue: true" : ""} }`; else if(!_default && ((type === "object" && Object.keys(thing).length === 0) || type !== "Object"))type = `{ type: ${type}${req.some(v => v === key) ? ", required: true" : ""} ${unq.some(v => v === key) ? ", unqiue: true" : ""} }`; return type; } module.exports = getType;