@squareboat/nestjs-objection
Version:
The objection database package for your NestJS Applications
31 lines (30 loc) • 990 B
JavaScript
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;
};
;