UNPKG

@knax/backend-utils

Version:

41 lines 2.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const Knex = require("knex"); const luxon_1 = require("luxon"); const objection_1 = require("objection"); const softDelete = require("@knax/objection-soft-delete"); const objection_visibility_1 = require("objection-visibility"); const uuid = require("uuid"); const knex = Knex({ client: process.env.DB_CLIENT, connection: { host: process.env.DB_HOST, database: process.env.DB_NAME, user: process.env.DB_USERNAME, password: process.env.DB_PASSWORD }, migrations: { tableName: 'knex_migrations' } }); let extendedModel = objection_visibility_1.default(objection_1.Model); extendedModel = softDelete({ columnName: 'deleted_at', deletedValue: knex.fn.now(), notDeletedValue: null })(extendedModel); extendedModel.knex(knex); class BaseModel extends extendedModel { $beforeInsert() { this.id = this.id || uuid.v4(); this.created_at = luxon_1.DateTime.local().toISO(); } $beforeUpdate() { this.updated_at = luxon_1.DateTime.local().toISO(); } } exports.default = BaseModel; BaseModel.hidden = [ 'deleted_at', ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLDZCQUE2QjtBQUM3QixpQ0FBK0I7QUFDL0IseUNBQWdDO0FBQ2hDLDBEQUEwRDtBQUMxRCwrREFBb0Q7QUFDcEQsNkJBQTZCO0FBRTdCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQztJQUNkLE1BQU0sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLFNBQVM7SUFDN0IsVUFBVSxFQUFFO1FBQ1IsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTztRQUN6QixRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPO1FBQzdCLElBQUksRUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVc7UUFDakMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVztLQUNwQztJQUNELFVBQVUsRUFBRTtRQUNSLFNBQVMsRUFBRSxpQkFBaUI7S0FDL0I7Q0FDSixDQUFDLENBQUM7QUFFSCxJQUFJLGFBQWEsR0FBRyw4QkFBZ0IsQ0FBQyxpQkFBSyxDQUFDLENBQUM7QUFFNUMsYUFBYSxHQUFHLFVBQVUsQ0FBQztJQUN2QixVQUFVLEVBQUUsWUFBWTtJQUN4QixZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUU7SUFDM0IsZUFBZSxFQUFFLElBQUk7Q0FDeEIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0FBQ2xCLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFFekIsTUFBcUIsU0FBVSxTQUFRLGFBQWE7SUFVekMsYUFBYTtRQUNoQixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBQ00sYUFBYTtRQUNoQixJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDL0MsQ0FBQzs7QUFoQkwsNEJBaUJDO0FBaEJpQixnQkFBTSxHQUFHO0lBQ25CLFlBQVk7Q0FDZixDQUFDIn0=