@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
33 lines (32 loc) • 1.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.preprocessInputData = void 0;
const class_validator_1 = require("class-validator");
const object_1 = require("diginext-utils/dist/object");
const lodash_1 = require("lodash");
const mongoose_1 = require("mongoose");
const mongodb_1 = require("./mongodb");
function preprocessInputData(data) {
const processedData = (0, lodash_1.cloneDeepWith)(data, (val, key) => {
// skip envVars
if (key === "envVars")
return val;
// convert {ObjectId} to string
if ((0, mongoose_1.isValidObjectId)(val))
return mongodb_1.MongoDB.toString((0, mongodb_1.toObjectId)(val));
if ((0, mongodb_1.isObjectId)(val))
return mongodb_1.MongoDB.toString(val);
// if (isNumberString(val)) return val.toString().length < 12 ? toNumber(val) : toString(val);
// convert boolean string to boolean
if ((0, class_validator_1.isBooleanString)(val))
return (0, object_1.toBool)(val);
// convert JSON string to object
if ((0, class_validator_1.isJSON)(val))
return JSON.parse(val);
// convert "undefined" or "null" to null
if (val === "undefined" || val === "null")
return null;
});
return processedData;
}
exports.preprocessInputData = preprocessInputData;