Skip to main content
zerotal

Documentation


Documentation / @zerotal/orm / index / ModelObserver

Interface: ModelObserver<T>

Defined in: packages/orm/src/model/Observer.ts:26

Observer interface — implement any subset of lifecycle methods to react to a model's create / update / save / delete / retrieve events in one cohesive class.

Remarks

Each method name maps to an internal HookName: creatingbeforeCreate, createdafterCreate, updatingbeforeUpdate, updatedafterUpdate, savingbeforeSave, savedafterSave, deletingbeforeDelete, deletedafterDelete, and retrievedafterFind. Methods may be async; a before* method that throws aborts the operation.

Example

export class UserObserver implements ModelObserver<User> {
  creating(user: User) { user.uuid = crypto.randomUUID(); }
  created(user: User)  { Log.info('User created', { id: user.id }); }
  deleting(user: User) { Log.info('Deleting user', { id: user.id }); }
}

// Register once at boot (in a ServiceProvider)
User.observe(UserObserver);

Type Parameters

T

T = unknown

The model type the observer watches.

Methods

creating()?

optional creating(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:27

Parameters

model

T

Returns

void | Promise<void>


created()?

optional created(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:28

Parameters

model

T

Returns

void | Promise<void>


updating()?

optional updating(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:29

Parameters

model

T

Returns

void | Promise<void>


updated()?

optional updated(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:30

Parameters

model

T

Returns

void | Promise<void>


saving()?

optional saving(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:31

Parameters

model

T

Returns

void | Promise<void>


saved()?

optional saved(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:32

Parameters

model

T

Returns

void | Promise<void>


deleting()?

optional deleting(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:33

Parameters

model

T

Returns

void | Promise<void>


deleted()?

optional deleted(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:34

Parameters

model

T

Returns

void | Promise<void>


retrieved()?

optional retrieved(model): void | Promise<void>

Defined in: packages/orm/src/model/Observer.ts:35

Parameters

model

T

Returns

void | Promise<void>