UNPKG

nexorm

Version:

A powerful TypeScript ORM with advanced features.

43 lines (42 loc) 1.57 kB
"use strict"; 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); } ; } ;