Skip to content

index

Classes

CascadeRelationNotFoundError

Defined in: src/errors/cascade-relation-not-found.error.ts:1

Extends

  • Error

Constructors

Constructor
ts
new CascadeRelationNotFoundError(parent, child): CascadeRelationNotFoundError;

Defined in: src/errors/cascade-relation-not-found.error.ts:2

Parameters
ParameterType
parentstring
childstring
Returns

CascadeRelationNotFoundError

Overrides
ts
Error.constructor

Properties

cause?
ts
optional cause?: unknown;

Defined in: ../../../../../../../opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/typedoc/node_modules/typescript/lib/lib.es2022.error.d.ts:24

Inherited from
ts
Error.cause
message
ts
message: string;

Defined in: ../../../../../../../opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/typedoc/node_modules/typescript/lib/lib.es5.d.ts:1075

Inherited from
ts
Error.message
name
ts
name: string;

Defined in: ../../../../../../../opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/typedoc/node_modules/typescript/lib/lib.es5.d.ts:1074

Inherited from
ts
Error.name
stack?
ts
optional stack?: string;

Defined in: ../../../../../../../opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/typedoc/node_modules/typescript/lib/lib.es5.d.ts:1076

Inherited from
ts
Error.stack

PurgedEvent

Defined in: src/events/soft-delete.events.ts:22

Constructors

Constructor
ts
new PurgedEvent(
   model, 
   count, 
   olderThan): PurgedEvent;

Defined in: src/events/soft-delete.events.ts:25

Parameters
ParameterType
modelstring
countnumber
olderThanDate
Returns

PurgedEvent

Properties

count
ts
readonly count: number;

Defined in: src/events/soft-delete.events.ts:27

EVENT_NAME
ts
readonly static EVENT_NAME: "soft-delete.purged";

Defined in: src/events/soft-delete.events.ts:23

model
ts
readonly model: string;

Defined in: src/events/soft-delete.events.ts:26

olderThan
ts
readonly olderThan: Date;

Defined in: src/events/soft-delete.events.ts:28


RestoredEvent

Defined in: src/events/soft-delete.events.ts:12

Constructors

Constructor
ts
new RestoredEvent(
   model, 
   where, 
   actorId?): RestoredEvent;

Defined in: src/events/soft-delete.events.ts:15

Parameters
ParameterTypeDefault value
modelstringundefined
whereRecord<string, unknown>undefined
actorIdstring | nullnull
Returns

RestoredEvent

Properties

actorId
ts
readonly actorId: string | null = null;

Defined in: src/events/soft-delete.events.ts:18

EVENT_NAME
ts
readonly static EVENT_NAME: "soft-delete.restored";

Defined in: src/events/soft-delete.events.ts:13

model
ts
readonly model: string;

Defined in: src/events/soft-delete.events.ts:16

where
ts
readonly where: Record<string, unknown>;

Defined in: src/events/soft-delete.events.ts:17


SoftDeleteContext

Defined in: src/services/soft-delete-context.ts:4

Constructors

Constructor
ts
new SoftDeleteContext(): SoftDeleteContext;
Returns

SoftDeleteContext

Methods

getActorId()
ts
static getActorId(): string | null;

Defined in: src/services/soft-delete-context.ts:44

Returns

string | null

getFilterMode()
ts
static getFilterMode(): SoftDeleteFilterMode;

Defined in: src/services/soft-delete-context.ts:36

Returns

SoftDeleteFilterMode

isSkipped()
ts
static isSkipped(): boolean;

Defined in: src/services/soft-delete-context.ts:40

Returns

boolean

run()
ts
static run<T>(store, callback): T;

Defined in: src/services/soft-delete-context.ts:16

Runs a callback within the given soft-delete context store.

Supports both synchronous and asynchronous callbacks. When the callback returns a Promise (e.g. a Prisma query), the context is preserved throughout the entire async chain — including inside Prisma extension handlers whose internal Promise implementation may not propagate AsyncLocalStorage context on its own.

Type Parameters
Type Parameter
T
Parameters
ParameterType
storeSoftDeleteStore
callback() => T
Returns

T


SoftDeletedEvent

Defined in: src/events/soft-delete.events.ts:1

Constructors

Constructor
ts
new SoftDeletedEvent(
   model, 
   where, 
   deletedAt, 
   actorId?): SoftDeletedEvent;

Defined in: src/events/soft-delete.events.ts:4

Parameters
ParameterTypeDefault value
modelstringundefined
whereRecord<string, unknown>undefined
deletedAtDateundefined
actorIdstring | nullnull
Returns

SoftDeletedEvent

Properties

actorId
ts
readonly actorId: string | null = null;

Defined in: src/events/soft-delete.events.ts:8

deletedAt
ts
readonly deletedAt: Date;

Defined in: src/events/soft-delete.events.ts:7

EVENT_NAME
ts
readonly static EVENT_NAME: "soft-delete.deleted";

Defined in: src/events/soft-delete.events.ts:2

model
ts
readonly model: string;

Defined in: src/events/soft-delete.events.ts:5

where
ts
readonly where: Record<string, unknown>;

Defined in: src/events/soft-delete.events.ts:6


SoftDeleteEventEmitter

Defined in: src/events/soft-delete-event-emitter.ts:21

Constructors

Constructor
ts
new SoftDeleteEventEmitter(eventEmitter): SoftDeleteEventEmitter;

Defined in: src/events/soft-delete-event-emitter.ts:22

Parameters
ParameterType
eventEmitterany
Returns

SoftDeleteEventEmitter

Accessors

isEnabled
Get Signature
ts
get isEnabled(): boolean;

Defined in: src/events/soft-delete-event-emitter.ts:30

Returns

boolean

Methods

emitPurged()
ts
emitPurged(event): void;

Defined in: src/events/soft-delete-event-emitter.ts:42

Parameters
ParameterType
eventPurgedEvent
Returns

void

emitRestored()
ts
emitRestored(event): void;

Defined in: src/events/soft-delete-event-emitter.ts:38

Parameters
ParameterType
eventRestoredEvent
Returns

void

emitSoftDeleted()
ts
emitSoftDeleted(event): void;

Defined in: src/events/soft-delete-event-emitter.ts:34

Parameters
ParameterType
eventSoftDeletedEvent
Returns

void


SoftDeleteFieldMissingError

Defined in: src/errors/soft-delete-field-missing.error.ts:1

Extends

  • Error

Constructors

Constructor
ts
new SoftDeleteFieldMissingError(model, field): SoftDeleteFieldMissingError;

Defined in: src/errors/soft-delete-field-missing.error.ts:2

Parameters
ParameterType
modelstring
fieldstring
Returns

SoftDeleteFieldMissingError

Overrides
ts
Error.constructor

Properties

cause?
ts
optional cause?: unknown;

Defined in: ../../../../../../../opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/typedoc/node_modules/typescript/lib/lib.es2022.error.d.ts:24

Inherited from
ts
Error.cause
message
ts
message: string;

Defined in: ../../../../../../../opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/typedoc/node_modules/typescript/lib/lib.es5.d.ts:1075

Inherited from
ts
Error.message
name
ts
name: string;

Defined in: ../../../../../../../opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/typedoc/node_modules/typescript/lib/lib.es5.d.ts:1074

Inherited from
ts
Error.name
stack?
ts
optional stack?: string;

Defined in: ../../../../../../../opt/hostedtoolcache/node/18.20.8/x64/lib/node_modules/typedoc/node_modules/typescript/lib/lib.es5.d.ts:1076

Inherited from
ts
Error.stack

SoftDeleteFilterInterceptor

Defined in: src/interceptors/soft-delete-filter.interceptor.ts:9

Implements

  • NestInterceptor

Constructors

Constructor
ts
new SoftDeleteFilterInterceptor(reflector): SoftDeleteFilterInterceptor;

Defined in: src/interceptors/soft-delete-filter.interceptor.ts:10

Parameters
ParameterType
reflectorReflector
Returns

SoftDeleteFilterInterceptor

Methods

intercept()
ts
intercept(context, next): Observable<any>;

Defined in: src/interceptors/soft-delete-filter.interceptor.ts:12

Method to implement a custom interceptor.

Parameters
ParameterTypeDescription
contextExecutionContextan ExecutionContext object providing methods to access the route handler and class about to be invoked.
nextCallHandlera reference to the CallHandler, which provides access to an Observable representing the response stream from the route handler.
Returns

Observable<any>

Implementation of
ts
NestInterceptor.intercept

SoftDeleteModule

Defined in: src/soft-delete.module.ts:49

Implements

  • NestModule

Constructors

Constructor
ts
new SoftDeleteModule(): SoftDeleteModule;
Returns

SoftDeleteModule

Methods

configure()
ts
configure(consumer): void;

Defined in: src/soft-delete.module.ts:112

Parameters
ParameterType
consumerMiddlewareConsumer
Returns

void

Implementation of
ts
NestModule.configure
forRoot()
ts
static forRoot(options): DynamicModule;

Defined in: src/soft-delete.module.ts:50

Parameters
ParameterType
optionsSoftDeleteModuleOptions
Returns

DynamicModule

forRootAsync()
ts
static forRootAsync(options): DynamicModule;

Defined in: src/soft-delete.module.ts:83

Parameters
ParameterType
optionsSoftDeleteModuleAsyncOptions
Returns

DynamicModule


SoftDeleteService

Defined in: src/services/soft-delete.service.ts:10

Constructors

Constructor
ts
new SoftDeleteService(
   options, 
   prisma, 
   cascadeHandler, 
   eventEmitter): SoftDeleteService;

Defined in: src/services/soft-delete.service.ts:14

Parameters
ParameterType
optionsSoftDeleteModuleOptions
prismaany
cascadeHandlerCascadeHandler | null
eventEmitterSoftDeleteEventEmitter | null
Returns

SoftDeleteService

Methods

forceDelete()
ts
forceDelete<T>(model, where): Promise<T>;

Defined in: src/services/soft-delete.service.ts:83

Permanently delete a record, bypassing soft-delete logic.

Type Parameters
Type ParameterDefault type
Tany
Parameters
ParameterType
modelstring
whereRecord<string, any>
Returns

Promise<T>

onlyDeleted()
ts
onlyDeleted<T>(callback): Promise<T>;

Defined in: src/services/soft-delete.service.ts:138

Execute a callback where only soft-deleted records are returned.

Type Parameters
Type Parameter
T
Parameters
ParameterType
callback() => T | Promise<T>
Returns

Promise<T>

purge()
ts
purge(model, options): Promise<{
  count: number;
}>;

Defined in: src/services/soft-delete.service.ts:97

Permanently delete soft-deleted records older than the specified date. Runs within skipSoftDelete context so the extension does not intercept the deleteMany.

Parameters
ParameterType
modelstring
options{ olderThan: Date; where?: Record<string, any>; }
options.olderThanDate
options.where?Record<string, any>
Returns

Promise<{ count: number; }>

restore()
ts
restore<T>(model, where): Promise<T>;

Defined in: src/services/soft-delete.service.ts:37

Restore a soft-deleted record by setting deletedAt (and optionally deletedBy) back to null. If cascade is configured, cascade-restores child records as well.

Type Parameters
Type ParameterDefault type
Tany
Parameters
ParameterType
modelstring
whereRecord<string, any>
Returns

Promise<T>

withDeleted()
ts
withDeleted<T>(callback): Promise<T>;

Defined in: src/services/soft-delete.service.ts:128

Execute a callback where all queries include soft-deleted records.

Type Parameters
Type Parameter
T
Parameters
ParameterType
callback() => T | Promise<T>
Returns

Promise<T>

Interfaces

SoftDeleteExtensionOptions

Defined in: src/interfaces/soft-delete-options.interface.ts:23

Properties

cascade?
ts
optional cascade?: Record<string, string[]>;

Defined in: src/interfaces/soft-delete-options.interface.ts:27

deletedAtField?
ts
optional deletedAtField?: string;

Defined in: src/interfaces/soft-delete-options.interface.ts:25

deletedByField?
ts
optional deletedByField?: string | null;

Defined in: src/interfaces/soft-delete-options.interface.ts:26

eventEmitter?
ts
optional eventEmitter?: 
  | {
  emitSoftDeleted: (event) => void;
}
  | null;

Defined in: src/interfaces/soft-delete-options.interface.ts:30

Optional event emitter for soft-delete lifecycle events

maxCascadeDepth?
ts
optional maxCascadeDepth?: number;

Defined in: src/interfaces/soft-delete-options.interface.ts:28

softDeleteModels
ts
softDeleteModels: string[];

Defined in: src/interfaces/soft-delete-options.interface.ts:24


SoftDeleteModuleAsyncOptions

Defined in: src/interfaces/soft-delete-options.interface.ts:16

Extends

  • Pick<ModuleMetadata, "imports">

Properties

imports?
ts
optional imports?: (
  | DynamicModule
  | Type<any>
  | Promise<DynamicModule>
  | ForwardReference<any>)[];

Defined in: node_modules/@nestjs/common/interfaces/modules/module-metadata.interface.d.ts:18

Optional list of imported modules that export the providers which are required in this module.

Inherited from
ts
Pick.imports
inject?
ts
optional inject?: any[];

Defined in: src/interfaces/soft-delete-options.interface.ts:18

prismaServiceToken
ts
prismaServiceToken: any;

Defined in: src/interfaces/soft-delete-options.interface.ts:20

DI token for the PrismaService provider — known at registration time, not async

useFactory
ts
useFactory: (...args) => 
  | SoftDeleteModuleOptions
| Promise<SoftDeleteModuleOptions>;

Defined in: src/interfaces/soft-delete-options.interface.ts:17

Parameters
ParameterType
...argsany[]
Returns

| SoftDeleteModuleOptions | Promise<SoftDeleteModuleOptions>


SoftDeleteModuleOptions

Defined in: src/interfaces/soft-delete-options.interface.ts:3

Properties

actorExtractor?
ts
optional actorExtractor?: (req) => string | null;

Defined in: src/interfaces/soft-delete-options.interface.ts:7

Parameters
ParameterType
reqany
Returns

string | null

cascade?
ts
optional cascade?: Record<string, string[]>;

Defined in: src/interfaces/soft-delete-options.interface.ts:8

deletedAtField?
ts
optional deletedAtField?: string;

Defined in: src/interfaces/soft-delete-options.interface.ts:5

deletedByField?
ts
optional deletedByField?: string | null;

Defined in: src/interfaces/soft-delete-options.interface.ts:6

enableEvents?
ts
optional enableEvents?: boolean;

Defined in: src/interfaces/soft-delete-options.interface.ts:13

Enable event emission. Requires @nestjs/event-emitter to be installed. Default: false

maxCascadeDepth?
ts
optional maxCascadeDepth?: number;

Defined in: src/interfaces/soft-delete-options.interface.ts:9

prismaServiceToken
ts
prismaServiceToken: any;

Defined in: src/interfaces/soft-delete-options.interface.ts:11

DI token for the PrismaService provider in the consumer's module

softDeleteModels
ts
softDeleteModels: string[];

Defined in: src/interfaces/soft-delete-options.interface.ts:4


SoftDeleteStore

Defined in: src/interfaces/soft-delete-context.interface.ts:3

Properties

actorId?
ts
optional actorId?: string | null;

Defined in: src/interfaces/soft-delete-context.interface.ts:6

filterMode
ts
filterMode: SoftDeleteFilterMode;

Defined in: src/interfaces/soft-delete-context.interface.ts:4

skipSoftDelete
ts
skipSoftDelete: boolean;

Defined in: src/interfaces/soft-delete-context.interface.ts:5

Type Aliases

SoftDeleteFilterMode

ts
type SoftDeleteFilterMode = "default" | "withDeleted" | "onlyDeleted";

Defined in: src/interfaces/soft-delete-context.interface.ts:1

Variables

SOFT_DELETE_MODULE_OPTIONS

ts
const SOFT_DELETE_MODULE_OPTIONS: typeof SOFT_DELETE_MODULE_OPTIONS;

Defined in: src/soft-delete.constants.ts:1


SOFT_DELETE_PRISMA_SERVICE

ts
const SOFT_DELETE_PRISMA_SERVICE: typeof SOFT_DELETE_PRISMA_SERVICE;

Defined in: src/soft-delete.constants.ts:2

Functions

createPrismaSoftDeleteExtension()

ts
function createPrismaSoftDeleteExtension(options): any;

Defined in: src/prisma/soft-delete-extension.ts:265

Creates a Prisma client extension that intercepts delete operations (converting them to soft-delete updates) and read operations (injecting deletedAt filters based on the current context).

Parameters

ParameterType
optionsSoftDeleteExtensionOptions

Returns

any


OnlyDeleted()

ts
function OnlyDeleted(): CustomDecorator<string>;

Defined in: src/decorators/only-deleted.decorator.ts:4

Returns

CustomDecorator<string>


SkipSoftDelete()

ts
function SkipSoftDelete(): CustomDecorator<string>;

Defined in: src/decorators/skip-soft-delete.decorator.ts:4

Returns

CustomDecorator<string>


WithDeleted()

ts
function WithDeleted(): CustomDecorator<string>;

Defined in: src/decorators/with-deleted.decorator.ts:4

Returns

CustomDecorator<string>

Released under the MIT License.