@knax/backend-utils
Version:
41 lines • 2.65 kB
JavaScript
;
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=