Skip to content

ambiten


ambiten / core/src / AmbitenSchema

Class: AmbitenSchema<T> ​

Defined in: packages/core/src/lib-core/ambitenSchema.ts:36

The AmbitenSchema class allows you to define a schema for MongoDB documents. It supports:

  • schema definition
  • custom validation
  • indexes
  • relationships
  • virtual fields
  • context-aware middleware
  • garbage collection metadata

Extended by ​

Type Parameters ​

T ​

T extends Document

Constructors ​

Constructor ​

new AmbitenSchema<T>(schemaDefinition): AmbitenSchema<T>

Defined in: packages/core/src/lib-core/ambitenSchema.ts:55

Creates an instance of AmbitenSchema.

Parameters ​

schemaDefinition ​

SchemaDefinition<T>

The schema definition for the document.

Returns ​

AmbitenSchema<T>

Methods ​

addRelationship() ​

addRelationship(ref, localField): void

Defined in: packages/core/src/lib-core/ambitenSchema.ts:237

Adds a relationship to the schema.

Parameters ​

ref ​

string

localField ​

keyof T

Returns ​

void


applyIndexes() ​

applyIndexes(collection): Promise<void>

Defined in: packages/core/src/lib-core/ambitenSchema.ts:228

Applies all defined indexes to a MongoDB collection.

Parameters ​

collection ​

Collection<any>

Returns ​

Promise<void>


applyVirtuals() ​

applyVirtuals(doc): void

Defined in: packages/core/src/lib-core/ambitenSchema.ts:258

Applies all virtual fields to a document.

Parameters ​

doc ​

T

Returns ​

void


executeMiddleware() ​

executeMiddleware(phase, operation, ctx): Promise<void>

Defined in: packages/core/src/lib-core/ambitenSchema.ts:355

Executes middleware for a given phase and operation.

Parameters ​

phase ​

"pre" | "post"

operation ​

AmbitenMiddlewareOperation

ctx ​

AmbitenMiddlewareContext<T>

Returns ​

Promise<void>


executePost() ​

executePost(operation, ctx): Promise<void>

Defined in: packages/core/src/lib-core/ambitenSchema.ts:342

Executes post-middleware for an operation.

Parameters ​

operation ​

AmbitenMiddlewareOperation

ctx ​

AmbitenMiddlewareContext<T>

Returns ​

Promise<void>


executePre() ​

executePre(operation, ctx): Promise<void>

Defined in: packages/core/src/lib-core/ambitenSchema.ts:329

Executes pre-middleware for an operation.

Parameters ​

operation ​

AmbitenMiddlewareOperation

ctx ​

AmbitenMiddlewareContext<T>

Returns ​

Promise<void>


getGCConfig() ​

getGCConfig(): GCConfig | undefined

Defined in: packages/core/src/lib-core/ambitenSchema.ts:395

Gets garbage collection configuration.

Returns ​

GCConfig | undefined


getHooks() ​

getHooks(operation, phase?): AmbitenMiddlewareHandler<T>[]

Defined in: packages/core/src/lib-core/ambitenSchema.ts:317

Backward-compatible hook reader. Defaults to pre hooks to avoid breaking older callers that expect getHooks(action).

Parameters ​

operation ​

AmbitenMiddlewareOperation

phase? ​

"pre" | "post"

Returns ​

AmbitenMiddlewareHandler<T>[]


getPostHooks() ​

getPostHooks(operation): AmbitenMiddlewareHandler<T>[]

Defined in: packages/core/src/lib-core/ambitenSchema.ts:307

Returns all post-middleware for an operation.

Parameters ​

operation ​

AmbitenMiddlewareOperation

Returns ​

AmbitenMiddlewareHandler<T>[]


getPreHooks() ​

getPreHooks(operation): AmbitenMiddlewareHandler<T>[]

Defined in: packages/core/src/lib-core/ambitenSchema.ts:298

Returns all pre-middleware for an operation.

Parameters ​

operation ​

AmbitenMiddlewareOperation

Returns ​

AmbitenMiddlewareHandler<T>[]


getRelationships() ​

getRelationships(): Relationship<any>[]

Defined in: packages/core/src/lib-core/ambitenSchema.ts:244

Retrieves all relationships defined in the schema.

Returns ​

Relationship<any>[]


getSchema() ​

getSchema(): SchemaDefinition<T>

Defined in: packages/core/src/lib-core/ambitenSchema.ts:62

Retrieves the schema definition.

Returns ​

SchemaDefinition<T>


index() ​

index(fields, options?): void

Defined in: packages/core/src/lib-core/ambitenSchema.ts:221

Adds an index to the schema.

Parameters ​

fields ​

any

options? ​

any

Returns ​

void


post() ​

post(operation, fn): this

Defined in: packages/core/src/lib-core/ambitenSchema.ts:284

Adds a post-middleware handler for a specific operation.

Parameters ​

operation ​

AmbitenMiddlewareOperation

fn ​

AmbitenMiddlewareHandler<T>

Returns ​

this


pre() ​

pre(operation, fn): this

Defined in: packages/core/src/lib-core/ambitenSchema.ts:270

Adds a pre-middleware handler for a specific operation.

Parameters ​

operation ​

AmbitenMiddlewareOperation

fn ​

AmbitenMiddlewareHandler<T>

Returns ​

this


registerSchema() ​

registerSchema(schemaDefinition): void

Defined in: packages/core/src/lib-core/ambitenSchema.ts:69

Re-registers the schema definition.

Parameters ​

schemaDefinition ​

SchemaDefinition<T>

Returns ​

void


setGCConfig() ​

setGCConfig(config): this

Defined in: packages/core/src/lib-core/ambitenSchema.ts:387

Sets garbage collection configuration.

Parameters ​

config ​

GCConfig

Returns ​

this


triggerMiddleware() ​

triggerMiddleware(phase, operation, ctx): Promise<void>

Defined in: packages/core/src/lib-core/ambitenSchema.ts:376

Backward-compatible alias. If older callers use triggerMiddleware(action, data), they should be upgraded to pass explicit phase + operation + context.

Parameters ​

phase ​

"pre" | "post"

operation ​

AmbitenMiddlewareOperation

ctx ​

AmbitenMiddlewareContext<T>

Returns ​

Promise<void>


validate() ​

validate(doc): void

Defined in: packages/core/src/lib-core/ambitenSchema.ts:175

Validates a document synchronously. Throws if an async validator is encountered.

Parameters ​

doc ​

OptionalUnlessRequiredId<T>

Returns ​

void


validateAsync() ​

validateAsync(doc): Promise<void>

Defined in: packages/core/src/lib-core/ambitenSchema.ts:201

Validates a document asynchronously.

Parameters ​

doc ​

OptionalUnlessRequiredId<T>

Returns ​

Promise<void>


validator() ​

validator(field, fn): void

Defined in: packages/core/src/lib-core/ambitenSchema.ts:149

Adds a custom validator for a specific field.

Parameters ​

field ​

string

fn ​

(value, doc?) => boolean | Promise<boolean>

Returns ​

void


virtual() ​

virtual(name, getter): void

Defined in: packages/core/src/lib-core/ambitenSchema.ts:251

Adds a virtual field to the schema.

Parameters ​

name ​

string

getter ​

(doc) => any

Returns ​

void

Context-aware execution infrastructure for multi-tenant systems.