JSPM

@vsaas/loopback-softdelete-mixin4

11.0.2
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 211
  • Score
    100M100P100Q90721F

Fork of loopback-softdelete-mixin4 for @xompass LoopBack 3 projects

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/
  • tsdown builds to dist/
  • vitest tests
  • English-only runtime and docs

Install

npm install @vsaas/loopback-softdelete-mixin4

Server 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 deletes
  • scrub: set deleted model fields to null; use true for all non-key fields or an array for a subset
  • index: adds deleteIndex so soft-deleted rows can coexist with uniqueness constraints
  • deletedById: adds a deletedById field
  • deleteOp: adds a deleteOp field

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, and destroyAll to perform soft deletes.
  • count, find, findOrCreate, update, and updateAll are scoped to non-deleted rows unless you explicitly opt into deleted results where supported.
  • The index option only adds the deleteIndex property. It does not create the database index for you.