UNPKG

@squareboat/nestjs-objection

Version:

The objection database package for your NestJS Applications

31 lines (30 loc) 990 B
"use strict"; var _a; Object.defineProperty(exports, "__esModule", { value: true }); exports.SoftDeleteQueryBuilder = void 0; const objection_1 = require("objection"); const custom_1 = require("./custom"); class SoftDeleteQueryBuilder extends custom_1.CustomQueryBuilder { withArchived() { this.context().withArchived = true; return this; } softDelete() { return this.patch({ deletedAt: new Date(), }); } } exports.SoftDeleteQueryBuilder = SoftDeleteQueryBuilder; _a = SoftDeleteQueryBuilder; SoftDeleteQueryBuilder.forClass = (modelClass) => { const qb = objection_1.QueryBuilder.forClass.call(_a, modelClass); qb.onBuild((builder) => { const tableName = builder.tableRefFor(modelClass); const isPartial = builder["isPartial"](); if (!isPartial && builder.isFind() && !builder.context().withArchived) { builder.whereNull(`${tableName}.deleted_at`); } }); return qb; };