Package Exports
- @vsaas/loopback-softdelete-mixin4
- @vsaas/loopback-softdelete-mixin4/package.json
- @vsaas/loopback-softdelete-mixin4/soft-delete
Readme
@vsaas/loopback-softdelete-mixin4
Fork of loopback-softdelete-mixin4 for @xompass LoopBack 3 projects.
This fork keeps the public mixin behavior compatible for existing apps, but trims the old Babel/Gulp toolchain and modernizes the package around:
- TypeScript source in
src/ tsdownbuilds todist/vitesttests- English-only runtime and docs
Install
npm install @vsaas/loopback-softdelete-mixin4Server Configuration
Add the package directory to mixins in your server/model-config.json:
{
"_meta": {
"mixins": ["../node_modules/@vsaas/loopback-softdelete-mixin4"]
}
}@vsaas/loopback-boot resolves this mixin from the package manifest, so no root wrapper file is required.
Model Configuration
{
"name": "Widget",
"properties": {
"name": {
"type": "string"
}
},
"mixins": {
"SoftDelete": true
}
}Options
{
"mixins": {
"SoftDelete": {
"deletedAt": "deletedAt",
"scrub": true,
"index": true,
"deletedById": true,
"deleteOp": true
}
}
}Supported options:
deletedAt: rename the timestamp field used for soft deletesscrub: set deleted model fields tonull; usetruefor all non-key fields or an array for a subsetindex: addsdeleteIndexso soft-deleted rows can coexist with uniqueness constraintsdeletedById: adds adeletedByIdfielddeleteOp: adds adeleteOpfield
Query Behavior
By default, queries exclude soft-deleted rows. To include them, pass:
{
deleted: true;
}at the same level as where, include, or order.
Notes
- This package overrides
destroy,destroyById, anddestroyAllto perform soft deletes. count,find,findOrCreate,update, andupdateAllare scoped to non-deleted rows unless you explicitly opt into deleted results where supported.- The
indexoption only adds thedeleteIndexproperty. It does not create the database index for you.