nexorm
Version:
A powerful TypeScript ORM with advanced features.
43 lines (42 loc) • 1.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.build = build;
const crypto_1 = __importDefault(require("crypto"));
const errorHandler_1 = __importDefault(require("../errorHandler"));
const errorParser_1 = require("../util/errorParser");
async function build(model, data, options) {
if (!data)
throw new errorHandler_1.default("No data provided.", "#FF0000");
if (!model)
throw new errorHandler_1.default("No model provided.", "#FF0000");
if (!model.findAll)
throw new errorHandler_1.default("Invalid model provided.", "#FF0000");
var filterOptions = {};
if (!options)
options = {};
if (options.$logging) {
if (!["function", "boolean"].some((types) => types == typeof options.$logging))
throw new errorHandler_1.default("Invalid value for $logging. Must be a Function, Boolean or String.", "#FF0000");
filterOptions.logging = options.$logging;
}
;
const uniqueData = {
...data,
ObjectId: `${crypto_1.default.randomUUID()}-${Date.now().toString(5)}`
};
try {
return (await model.create(uniqueData, {
transaction: options?.$transaction?.trx,
hooks: options?.$hooks ?? true,
logging: filterOptions.logging
})).dataValues || null;
}
catch (error) {
throw (0, errorParser_1.errorParser)(error);
}
;
}
;