ObjectStackObjectStack

Hook

Hook protocol schemas

Hook Lifecycle Events

Defines the interception points in the ObjectQL execution pipeline.

Source: packages/spec/src/data/hook.zod.ts

TypeScript Usage

import { HookContext, HookEvent } from '@objectstack/spec/data';
import type { HookContext, HookEvent } from '@objectstack/spec/data';

// Validate data
const result = HookContext.parse(data);

HookContext

Properties

PropertyTypeRequiredDescription
idstringoptionalUnique execution ID for tracing
objectstring
eventEnum<'beforeFind' | 'afterFind' | 'beforeFindOne' | 'afterFindOne' | 'beforeCount' | 'afterCount' | 'beforeAggregate' | 'afterAggregate' | 'beforeInsert' | 'afterInsert' | 'beforeUpdate' | 'afterUpdate' | 'beforeDelete' | 'afterDelete' | 'beforeUpdateMany' | 'afterUpdateMany' | 'beforeDeleteMany' | 'afterDeleteMany'>
inputRecord<string, any>Mutable input parameters
resultanyoptionalOperation result (After hooks only)
previousRecord<string, any>optionalRecord state before operation
sessionObjectoptionalCurrent session context
transactionanyoptionalDatabase transaction handle
qlanyObjectQL Engine Reference
apianyoptionalCross-object data access (ScopedContext)
userObjectoptionalCurrent user info shortcut

HookEvent

Allowed Values

  • beforeFind
  • afterFind
  • beforeFindOne
  • afterFindOne
  • beforeCount
  • afterCount
  • beforeAggregate
  • afterAggregate
  • beforeInsert
  • afterInsert
  • beforeUpdate
  • afterUpdate
  • beforeDelete
  • afterDelete
  • beforeUpdateMany
  • afterUpdateMany
  • beforeDeleteMany
  • afterDeleteMany

On this page