Type Alias: HookHandlerProvider<Args, CleanUpArgs>
ts
type HookHandlerProvider<Args, CleanUpArgs> = {
name: string;
handle:
| void
| CleanupHandler<CleanUpArgs>
| Promise<void>
| Promise<CleanupHandler<CleanUpArgs>>;
};Hook represented as an object with a name and handle method.
This is useful when you want to specify a custom name for the hook, or when you want to reuse the same handler function for multiple events.
Example
ts
const hashPasswordProvider: HookHandlerProvider<[User], [Error | null]> = {
name: "hashPassword",
handle(event, user) {
user.password = hash(user.password);
},
};
// Reuse the same handler for multiple events
function handleSave(event: string, model: Model) {
console.log(`Handling ${event} for`, model);
}
hooks.add("saving", { name: "beforeSave", handle: handleSave });
hooks.add("creating", { name: "beforeCreate", handle: handleSave });Type Parameters
| Type Parameter | Description |
|---|---|
Args extends any[] | The arguments passed to the handle method (after the event name) |
CleanUpArgs extends any[] | The arguments that will be passed to the cleanup handler |
Properties
| Property | Type |
|---|---|
name | string |
Methods
handle()
ts
handle(event: string, ...args: Args):
| void
| CleanupHandler<CleanUpArgs>
| Promise<void>
| Promise<CleanupHandler<CleanUpArgs>>;Parameters
| Parameter | Type |
|---|---|
event | string |
...args | Args |
Returns
| void | CleanupHandler<CleanUpArgs> | Promise<void> | Promise<CleanupHandler<CleanUpArgs>>