@snowtop/ent-soft-delete
Version:
snowtop ent soft delete
63 lines (62 loc) • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.GlobalDeletedEdge = exports.DeletedAtPattern = void 0;
const ent_1 = require("@snowtop/ent");
class DeletedAtPattern {
constructor() {
this.name = "deleted_at";
this.disableMixin = true;
this.fields = {
deleted_at: (0, ent_1.TimestampType)({
nullable: true,
index: true,
defaultValueOnCreate: () => null,
hideFromGraphQL: true,
private: true,
}),
};
this.transformsDelete = true;
}
transformRead() {
return ent_1.query.Eq("deleted_at", null);
}
transformReadCodegen_BETA() {
return `query.Eq('deleted_at', null)`;
}
transformWrite(stmt) {
switch (stmt.op) {
case ent_1.SQLStatementOperation.Delete:
return {
op: ent_1.SQLStatementOperation.Update,
data: {
deleted_at: new Date(),
},
};
}
return null;
}
}
exports.DeletedAtPattern = DeletedAtPattern;
exports.GlobalDeletedEdge = {
extraEdgeFields: {
deleted_at: (0, ent_1.TimestampType)({
nullable: true,
defaultValueOnCreate: () => null,
}),
},
transformEdgeRead() {
return ent_1.query.Eq("deleted_at", null);
},
transformEdgeWrite(stmt) {
switch (stmt.op) {
case ent_1.SQLStatementOperation.Delete:
return {
op: ent_1.SQLStatementOperation.Update,
data: {
deleted_at: new Date(),
},
};
}
return null;
},
};