[Go to site: main page, start]

The client-side ActiveEffect document which extends the common BaseActiveEffect model. Each ActiveEffect belongs to the effects collection of its parent Document. Each ActiveEffect contains a ActiveEffectData object which provides its source data.

ClientDocumentMixin

  • Actor: The Actor document which contains ActiveEffect embedded documents
  • Item: The Item document which contains ActiveEffect embedded documents

Hierarchy (View Summary)

Index

Constructors

Properties

Accessors

Methods

Constructors

Properties

The source data object for this DataModel instance. Once constructed, the source object is sealed such that no keys may be added nor removed.

parent: DataModel<object, DataModelConstructionContext> | null

An immutable reverse-reference to a parent DataModel to which this model belongs.

The defined and cached Data Schema for all instances of this DataModel.

DEFAULT_ICON: string = "icons/svg/aura.svg"

The default icon used for newly created ActiveEffect documents

LOCALIZATION_PREFIXES: string[] = ...
metadata: object = ...

Default metadata which applies to each instance of this Document type.

registry: ActiveEffectRegistry = ...

A helper class that accepts registration of ActiveEffects and manages their prepared duration and expiry data.

Accessors

  • get active(): boolean

    Whether this Active Effect is currently applying its changes to the target

    Returns boolean

  • get actor(): documents.Actor | null

    The Actor in which this ActiveEffect is embedded, either directly or as a grandchild Document

    Returns documents.Actor | null

  • get compendium(): any

    A reference to the Compendium Collection containing this Document, if any, and otherwise null.

    Returns any

  • get id(): string | null

    The canonical identifier for this Document.

    Returns string | null

  • get inCompendium(): boolean

    Is this document in a compendium?

    Returns boolean

  • get invalid(): boolean

    Is the current state of this DataModel invalid? The model is invalid if there is any unresolved failure.

    Returns boolean

  • get isEmbedded(): boolean

    Is this document embedded within a parent document?

    Returns boolean

  • get isExpiryTrackable(): any

    Whether this Active Effect is eligible to be registered with the ActiveEffectRegistry

    Returns any

  • get isSuppressed(): boolean

    Is there some system logic (or, absent that, an expired status) that makes this Active Effect ineligible for application?

    Returns boolean

  • get isTemporary(): boolean

    Whether this Active Effect has a temporary duration

    Returns boolean

  • get modifiesActor(): boolean

    Whether this Active Effect currently modify an Actor

    Returns boolean

  • get sourceName(): string

    The source name of the Active Effect. The source is retrieved synchronously. Therefore "Unknown" (localized) is returned if the origin points to a document inside a compendium. Returns "None" (localized) if it has no origin, and "Unknown" (localized) if the origin cannot be resolved.

    Returns string

  • get thumbnail(): string

    Provide a thumbnail image path used to represent this document.

    Returns string

  • get uuid(): string | null

    A Universally Unique Identifier (uuid) for this Document instance.

    Returns string | null

  • get baseDocument(): typeof Document

    The base document definition that this document class extends from.

    Returns typeof Document

  • get CHANGE_PHASES(): Record<string, { hint: string; label: string }>

    A cached compilation of core and registered application phases, along with their labels

    Returns Record<string, { hint: string; label: string }>

  • get collectionName(): string

    The named collection to which this Document belongs.

    Returns string

  • get documentName(): string

    The canonical name of this Document type, for example "Actor".

    Returns string

  • get EXPIRY_EVENTS(): Record<string, string>

    A cached compilation of core and registered expiry events

    Returns Record<string, string>

  • get hasTypeData(): boolean

    Does this Document support additional subtypes?

    Returns boolean

  • get hierarchy(): Readonly<Record<string, any>>

    The Embedded Document hierarchy for this Document.

    Returns Readonly<Record<string, any>>

  • get implementation(): typeof Document

    Return a reference to the configured subclass of this base Document type.

    Returns typeof Document

  • get schema(): DataModelSchemaField

    Ensure that all Document classes share the same schema of their base declaration.

    Returns DataModelSchemaField

  • get TYPES(): string[]

    The allowed types which may exist for this Document class.

    Returns string[]

Methods

  • Parameters

    • __namedParameters: { pack?: null; parentCollection?: null } = {}

    Returns void

  • Internal

    Identify the collection in a parent Document that this Document belongs to, if any.

    Parameters

    • OptionalparentCollection: string | null

      An explicitly provided parent collection name.

    Returns string | null

  • Initialize the instance by copying data from the source object to instance attributes. This mirrors the workflow of SchemaField#initialize but with some added functionality.

    Parameters

    • options: {} = {}

      Options provided to the model constructor

    Returns void

  • Post-process a creation operation for a single Document instance. Post-operation events occur for all connected clients.

    Parameters

    • data: any

      The initial data object provided to the document creation request

    • options: any

      Additional options which modify the creation request

    • userId: any

      The id of the User requesting the document update

    Returns void

  • Post-process a deletion operation for a single Document instance. Post-operation events occur for all connected clients.

    Parameters

    • options: any

      Additional options which modify the deletion request

    • userId: any

      The id of the User requesting the document update

    Returns void

  • Post-process an update operation for a single Document instance. Post-operation events occur for all connected clients.

    Parameters

    • changed: any

      The differential data that was changed relative to the documents prior values

    • options: any

      Additional options which modify the update request

    • userId: any

      The id of the User requesting the document update

    Returns void

  • Pre-process a creation operation for a single Document instance. Pre-operation events only occur for the client which requested the operation.

    Modifications to the pending Document instance must be performed using updateSource.

    Parameters

    • data: any

      The initial data object provided to the document creation request

    • options: any

      Additional options which modify the creation request

    • user: any

      The User requesting the document creation

    Returns Promise<false | undefined>

    Return false to exclude this Document from the creation operation

  • Pre-process an update operation for a single Document instance. Pre-operation events only occur for the client which requested the operation.

    Parameters

    • data: any

      The candidate changes to the Document

    • options: any

      Additional options which modify the update request

    • user: any

      The User requesting the document update

    Returns Promise<false | undefined>

    A return value of false indicates the update operation should be cancelled.

  • Perform the first step of the DataModel#_updateSource workflow which applies changes to a copy of model source data and records the resulting diff.

    Parameters

    • copy: any

      A mutable copy of model source data

    • changes: any

      New values which should be applied to the data model

    • options: any

      Options which determine how the new data is merged

    • _state: any

      Data cleaning state

    Returns object

    The resulting difference applied to source data

    A failure if the proposed change is invalid

  • Test whether a given User has permission to perform some action on this Document

    Parameters

    • user: BaseUser

      The User attempting modification

    • action: string

      The attempted action

    • Optionaldata: object = {}

      Data involved in the attempted action

    Returns boolean

    Does the User have permission?

  • Get an embedded document by its id from a named collection in the parent document.

    Parameters

    • embeddedName: string

      The name of the embedded Document type

    • id: string

      The id of the child document to retrieve

    • Optionaloptions: { invalid?: boolean; strict?: boolean } = {}

      Additional options which modify how embedded documents are retrieved

      • Optionalinvalid?: boolean

        Allow retrieving an invalid Embedded Document.

      • Optionalstrict?: boolean

        Throw an Error if the requested id does not exist. See Collection#get

    Returns Document<object, DocumentConstructionContext>

    The retrieved embedded Document instance, or undefined

    If the embedded collection does not exist, or if strict is true and the Embedded Document could not be found.

  • Traverse the data model instance, obtaining the DataField definition for a field of a particular property.

    Parameters

    • key: string | string[]

      A property key like ["abilities", "strength"] or "abilities.strength"

    Returns DataField | undefined

    The corresponding DataField definition for that field, or undefined

  • Get the value of a "flag" for this document See the setFlag method for more details on flags

    Parameters

    • scope: string

      The flag scope which namespaces the key

    • key: string

      The flag key

    Returns any

    The flag value

  • Get the explicit permission level that a User has over this Document, a value in CONST.DOCUMENT_OWNERSHIP_LEVELS. Compendium content ignores the ownership field in favor of User role-based ownership. Otherwise, Documents use granular per-User ownership definitions and Embedded Documents defer to their parent ownership.

    This method returns the value recorded in Document ownership, regardless of the User's role, for example a GAMEMASTER user might still return a result of NONE if they are not explicitly denoted as having a level.

    To test whether a user has a certain capability over the document, testUserPermission should be used.

    Parameters

    • Optionaluser: BaseUser

      The User being tested

    Returns DocumentOwnershipNumber

    A numeric permission level from CONST.DOCUMENT_OWNERSHIP_LEVELS

  • A determination of whether the ActiveEffect's expiry event was reached. This check is independent of whether the duration was also reached.

    Parameters

    • event: string

      The event that triggered this check

    • Optionalcontext: object

      Contextual information for use in the determination

    Returns boolean

  • For Documents which include game system data, migrate the system data object to conform to its latest data model. The data model is defined by the template.json specification included by the game system.

    Returns object

    The migrated system data object

  • Returns void

  • Returns void

  • Reset the state of this data instance back to mirror the contained source data, erasing any changes.

    Returns void

  • Assign a "flag" to this document. Flags represent key-value type data which can be used to store flexible or arbitrary data required by either the core software, game systems, or user-created modules.

    Each flag should be set using a scope which provides a namespace for the flag to help prevent collisions.

    Flags set by the core software use the "core" scope. Flags set by game systems or modules should use the canonical name attribute for the module Flags set by an individual world should "world" as the scope.

    Flag values can assume almost any data type. Setting a flag value to null will delete that flag.

    Parameters

    • scope: string

      The flag scope which namespaces the key

    • key: string

      The flag key

    • value: any

      The flag value

    Returns Promise<Document<object, DocumentConstructionContext>>

    A Promise resolving to the updated document

  • Determine whether a change from this ActiveEffect should be applied during the current phase. Systems and modules may override this method to introduce additional conditions under which a change is applied.

    Parameters

    • change: ActiveEffectChangeData

      The change being considered.

    • Optionaloptions: { phase?: string } = {}

      Options which affect whether the change is applied.

      • Optionalphase?: string

        The application phase currently being evaluated.

    Returns boolean

    Whether the change should be applied during this phase.

  • Test whether a certain User has a requested permission level (or greater) over the Document

    Parameters

    • user: BaseUser

      The User being tested

    • permission: DocumentOwnershipLevel

      The permission level from DOCUMENT_OWNERSHIP_LEVELS to test

    • options: { exact?: boolean } = {}

      Additional options involved in the permission test

      • Optionalexact?: boolean

        Require the exact permission level requested?

    Returns boolean

    Does the user have this permission level over the Document?

  • Parameters

    • pack: any
    • options: any

    Returns any

  • Extract the source data for the DataModel into a simple object format that can be serialized.

    Returns object

    The document source data expressed as a plain object

  • Copy and transform the DataModel into a plain object. Draw the values of the extracted object from the data source (by default) otherwise from its transformed values.

    Parameters

    • source: boolean = true

      Draw values from the underlying data source rather than transformed values

    Returns any

    The extracted primitive object

  • Iterate over all embedded Documents that are hierarchical children of this Document.

    Parameters

    • Optional_parentPath: string

      A parent field path already traversed

    Returns Generator<any, void, any>

  • Update derived Active Effect duration data.

    Parameters

    • Optionalcontext: object

      Contextual information indicating what lead to this call

    Returns ActiveEffectDuration

  • Update the DataModel locally by applying an object of changes to its source data. The provided changes are expanded, cleaned, validated, and stored to the source data object for this model. The provided changes argument is mutated in this process. The source data is then re-initialized to apply those changes to the prepared data. The method returns an object of differential changes which modified the original data.

    Parameters

    • changes: object = {}

      New values which should be applied to the data model

    • options: DataModelUpdateOptions = {}

      Options which determine how the new data is merged

    Returns object

    An object containing differential keys and values that were changed

    An error if the requested data model changes were invalid

  • Validate the data contained in the document to check for type and content. This method is intended to validate complete model records, verifying both individual field validation as well as joint model validity.

    For validating sets of partial model changes, it is preferred to call DataModel#updateSource as a dryRun. This method provides a convenience alias for such a workflow if changes are provided.

    Warning: if fallback handling is allowed, this process will mutate provided changes or model source data.

    Parameters

    Returns boolean

    Whether the data source or proposed change is reported as valid. A boolean is always returned if validation is non-strict.

    An error thrown if validation is strict and a failure occurs.

  • Protected

    Display changes to active effects as scrolling Token status text.

    Parameters

    • enabled: boolean

      Is the active effect currently enabled?

    Returns void

  • Protected

    Resolve a previously-initialized embedded DataModel that corresponds to an element being cleaned. Called during recursive data cleaning when a parent field contains EmbeddedDataField elements, or a single nested DataModel field (such as a TypeDataField), in order to propagate the inner DataModel into _state.model for the recursive clean operation. A single (non-collection) inner model resolves to itself; collection elements are matched by stable _id when one is present, otherwise by positional index.

    Subclasses may override when data preparation reshapes the field property in a way that the default cannot interpret, for example wrapping the container in a non-iterable type or replacing it with a derived view.

    Parameters

    • field: DataField

      The schema field being recursed into.

    • element: { index?: number; value: object } = {}
      • Optionalindex?: number

        The positional index of the element within a container, if applicable.

      • value: object

        The cleaned candidate value for the element being processed.

    • Optionaloptions: Readonly<DataModelCleaningOptions> = {}

      The cleaning options in effect for the operation.

    Returns DataModel<object, DataModelConstructionContext> | null

    The corresponding previously-initialized inner DataModel, or null.

  • Protected

    Pre-process a deletion operation for a single Document instance. Pre-operation events only occur for the client which requested the operation.

    Parameters

    • options: object

      Additional options which modify the deletion request

    • user: BaseUser

      The User requesting the document deletion

    Returns Promise<boolean | void>

    A return value of false indicates the deletion operation should be cancelled.

  • Protected

    Perform the second step of the DataModel#_updateSource workflow which applies the prepared diff to the model.

    Parameters

    • copy: object

      The prepared copy of source data with changes applied

    • diff: object

      The differential changes that were applied to source

    • options: DataModelUpdateOptions

      Options which determine how the new data is merged

    • _state: data.types.DataModelUpdateState

      Data cleaning state which might include instructions for final commit

    Returns void

  • Internal

    Define a simple migration from one field name to another. The value of the data can be transformed during the migration by an optional application function.

    Parameters

    • data: object

      The data object being migrated

    • oldKey: string

      The old field name

    • newKey: string

      The new field name

    • Optionalapply: (data: object) => any

      An application function, otherwise the old value is applied

    Returns boolean

    Whether a migration was applied.

  • Internal

    A reusable helper for adding a migration shim The value of the data can be transformed during the migration by an optional application function.

    Parameters

    • data: object

      The data object being shimmed

    • oldKey: string

      The old field name

    • newKey: string

      The new field name

    • Optionaloptions: { value?: any; warning?: string } = {}
      • Optionalvalue?: any

        The value of the shim

      • Optionalwarning?: string

        The deprecation message

    Returns void

  • Internal

    A reusable helper for adding migration shims.

    Parameters

    • data: object

      The data object being shimmed

    • shims: { [oldKey: string]: string }

      The mapping of old keys to new keys

    • Optionaloptions: { value?: any; warning?: string }
      • Optionalvalue?: any

        The value of the shim

      • Optionalwarning?: string

        The deprecation message

    Returns void

  • Apply preliminary model-specific cleaning rules or alter cleaning options or initial state. Subclass models may implement this function to configure the cleaning workflow. Any mutations to data, options, or _state parameters are performed inplace.

    Parameters

    • data: any

      The provided input data for cleaning

    • options: any

      Options which define how cleaning should be performed

    • _state: any

      The data cleaning state

    Returns void

  • Internal

    Add shims to the changes array.

    Parameters

    • changes: EffectChangeData[]

    Returns void

  • Apply this ActiveEffect to a target Document.

    Parameters

    • targetDoc: any

      The Document to which this effect should be applied

    • change: ActiveEffectChangeData

      The change data being applied

    • Optionaloptions: { modifyTarget?: boolean; replacementData?: object } = {}

      Options affecting the change application

      • OptionalmodifyTarget?: boolean

        Modify the target Document with the updated value.

      • OptionalreplacementData?: object

        Data used to resolve "@" expressions in a string value

    Returns Record<string, unknown>

    An object of property keys and their updated values

  • Apply EffectChangeData to a field within a Document.

    Parameters

    • targetDoc: any

      The model instance.

    • change: EffectChangeData

      The change to apply.

    • Optionaloptions: {
          field?: DataField;
          modifyTarget?: boolean;
          replacementData?: Record<string, unknown>;
      } = {}

      Additional options to configure the change application.

      • Optionalfield?: DataField

        The field: if not supplied, it will be retrieved from the supplied Document.

      • OptionalmodifyTarget?: boolean

        Modify the target Document with the updated value.

      • OptionalreplacementData?: Record<string, unknown>

        Data used to resolve "@" expressions.

    Returns unknown

    The updated value.

  • Create multiple Documents using provided input data. Data is provided as an array of objects where each individual object becomes one new Document.

    Parameters

    Returns Promise<Document<object, DocumentConstructionContext>[]>

    An array of created Document instances

    const data = [{name: "New Actor", type: "character", img: "path/to/profile.jpg"}];
    const created = await Actor.implementation.createDocuments(data);
    const data = [{name: "Tim", type: "npc"], [{name: "Tom", type: "npc"}];
    const created = await Actor.implementation.createDocuments(data);
    const actor = game.actors.getName("Tim");
    const data = [{name: "Sword", type: "weapon"}, {name: "Breastplate", type: "equipment"}];
    const created = await Item.implementation.createDocuments(data, {parent: actor});
    const data = [{name: "Compendium Actor", type: "character", img: "path/to/profile.jpg"}];
    const created = await Actor.implementation.createDocuments(data, {pack: "mymodule.mypack"});
  • Delete one or multiple existing Documents using an array of provided ids. Data is provided as an array of string ids for the documents to delete.

    Parameters

    • ids: string[] = []

      An array of string ids for the documents to be deleted

    • Optionaloperation: Partial<Omit<DatabaseDeleteOperation, "ids">> = {}

      Parameters of the database deletion operation

    Returns Promise<Document<object, DocumentConstructionContext>[]>

    An array of deleted Document instances

    If an invalid operation is attempted.

    const tim = game.actors.getName("Tim");
    const deleted = await Actor.implementation.deleteDocuments([tim.id]);
    const tim = game.actors.getName("Tim");
    const tom = game.actors.getName("Tom");
    const deleted = await Actor.implementation.deleteDocuments([tim.id, tom.id]);
    const tim = game.actors.getName("Tim");
    const sword = tim.items.getName("Sword");
    const shield = tim.items.getName("Shield");
    const deleted = await Item.implementation.deleteDocuments([sword.id, shield.id], parent: actor});
    const actor = await pack.getDocument(documentId);
    const deleted = await Actor.implementation.deleteDocuments([actor.id], {pack: "mymodule.mypack"});
  • Create an ActiveEffect instance from some status effect ID. Delegates to ActiveEffect._fromStatusEffect to create the ActiveEffect instance after creating the ActiveEffect data from the status effect data if CONFIG.statusEffects.

    Parameters

    • statusId: string

      The status effect ID.

    • Optionaloptions: DocumentConstructionContext = {}

      Additional options to pass to the ActiveEffect constructor.

    Returns Promise<documents.ActiveEffect>

    The created ActiveEffect instance.

    An error if there is no status effect in CONFIG.statusEffects with the given status ID and if the status has implicit statuses but doesn't have a static _id.

  • A compatibility method that returns the appropriate name of an embedded collection within this Document.

    Parameters

    • name: string

      An existing collection name or a document name.

    Returns string | null

    The provided collection name if it exists, the first available collection for the document name provided, or null if no appropriate embedded collection could be found.

    Actor.implementation.getCollectionName("items");
    // returns "items"
    Actor.implementation.getCollectionName("Item");
    // returns "items"
  • Retrieve the initial duration configuration.

    Parameters

    Returns EffectStartData

  • Migrate candidate source data for this DataModel which may require initial cleaning or transformations.

    Parameters

    • source: any

      Candidate source data for the module, before further cleaning

    • options: any

      Additional options for how the field is cleaned

    Returns object

    Migrated source data, ready for further cleaning

  • Wrap data migration in a try/catch which attempts it safely.

    Parameters

    • source: object

      Candidate source data for the module, before further cleaning

    • Optionaloptions: Readonly<DataModelCleaningOptions> = {}

      Additional options for how the field is cleaned

    Returns object

    Migrated source data, ready for further cleaning

  • Take data which conforms to the current data schema and add backwards-compatible accessors to it in order to support older code which uses this data.

    Parameters

    • data: any

      Data which matches the current schema

    • options: any

      Additional shimming options

    Returns object

    Data with added backwards-compatible properties, which is the same object as the data argument

  • Update multiple Document instances using provided differential data. Data is provided as an array of objects where each individual object updates one existing Document.

    Parameters

    • updates: object[] = []

      An array of differential data objects, each used to update a single Document

    • Optionaloperation: Partial<Omit<DatabaseUpdateOperation, "updates">> = {}

      Parameters of the database update operation

    Returns Promise<Document<object, DocumentConstructionContext>[]>

    An array of updated Document instances

    const updates = [{_id: "12ekjf43kj2312ds", name: "Timothy"}];
    const updated = await Actor.implementation.updateDocuments(updates);
    const updates = [{_id: "12ekjf43kj2312ds", name: "Timothy"}, {_id: "kj549dk48k34jk34", name: "Thomas"}]};
    const updated = await Actor.implementation.updateDocuments(updates);
    const actor = game.actors.getName("Timothy");
    const updates = [{_id: sword.id, name: "Magic Sword"}, {_id: shield.id, name: "Magic Shield"}];
    const updated = await Item.implementation.updateDocuments(updates, {parent: actor});
    const actor = await pack.getDocument(documentId);
    const updated = await Actor.implementation.updateDocuments([{_id: actor.id, name: "New Name"}],
    {pack: "mymodule.mypack"});
  • Evaluate joint validation rules which apply validation conditions across multiple fields of the model. Field-specific validation rules should be defined as part of the DataSchema for the model. This method allows for testing aggregate rules which impose requirements on the overall model.

    Parameters

    • data: object

      Candidate data for the model

    Returns void

    An error if a validation failure is detected

  • Protected

    Apply an ActiveEffect that uses an "add" change type. The way that effects are added depends on the data type of the current value.

    If the current value is null, the change value is assigned directly. If the current type is a string, the change value is concatenated. If the current type is a number, the change value is cast to numeric and added. If the current type is an array, the change value is appended to the existing array if it matches in type.

    Parameters

    • targetDoc: any

      The Document to which this effect should be applied

    • change: EffectChangeData

      The change data being applied

    • current: unknown

      The current value being modified

    • delta: unknown

      The parsed value of the change object

    • changes: object

      An object which accumulates changes to be applied

    Returns void

  • Protected

    Apply an ActiveEffect that uses a CUSTOM change type.

    Parameters

    • targetDoc: any

      The Document to which this effect should be applied

    • change: EffectChangeData

      The change data being applied

    • current: unknown

      The current value being modified

    • delta: unknown

      The parsed value of the change object

    • changes: object

      An object which accumulates changes to be applied

    Returns void

  • Protected

    Apply an ActiveEffect that uses a MULTIPLY application mode. Changes which MULTIPLY must be numeric to allow for multiplication.

    Parameters

    • targetDoc: any

      The Document to which this effect should be applied

    • change: EffectChangeData

      The change data being applied

    • current: unknown

      The current value being modified

    • delta: unknown

      The parsed value of the change object

    • changes: object

      An object which accumulates changes to be applied

    Returns void

  • Protected

    Apply an ActiveEffect that uses an OVERRIDE application mode. Numeric data is overridden by numbers, while other data types are overridden by any value

    Parameters

    • targetDoc: any

      The Document to which this effect should be applied

    • change: EffectChangeData

      The change data being applied

    • current: unknown

      The current value being modified

    • delta: unknown

      The parsed value of the change object

    • changes: object

      An object which accumulates changes to be applied

    Returns void

  • Protected

    Apply an ActiveEffect that uses a "subtract" change type. The way that effects are added depends on the data type of the current value.

    If the current value is null, the change value is assigned directly. If the current type is a string, the change value is replaced in the current value with the empty string. If the current type is a number, the change value is cast to numeric and subtracted. If the current type is an array, the change value is spliced out of the array if present.

    Parameters

    • targetDoc: any

      The Document to which this effect should be applied

    • change: EffectChangeData

      The change data being applied

    • current: unknown

      The current value being modified

    • delta: unknown

      The parsed value of the change object

    • changes: object

      An object which accumulates changes to be applied

    Returns void

  • Protected

    Apply this ActiveEffect to a provided Actor using a heuristic to infer the value types based on the current value and/or the default value in the template.json.

    Parameters

    • targetDoc: any

      The Document or DataModel to which this effect should be applied

    • change: ActiveEffectChangeData

      The change data being applied.

    • changes: Record<string, unknown>

      The aggregate update paths and their updated values.

    • Optionaloptions: { modifyTarget?: boolean; replacementData?: Record<string, unknown> } = {}
      • OptionalmodifyTarget?: boolean

        Modify the target Document with the updated value.

      • OptionalreplacementData?: Record<string, unknown>

        Data used to resolve "@" expressions.

    Returns void

  • Protected

    Apply an ActiveEffect that uses an UPGRADE, or DOWNGRADE application mode. Changes which UPGRADE or DOWNGRADE must be numeric to allow for comparison.

    Parameters

    • targetDoc: any

      The Document to which this effect should be applied

    • change: EffectChangeData

      The change data being applied

    • current: unknown

      The current value being modified

    • delta: unknown

      The parsed value of the change object

    • changes: object

      An object which accumulates changes to be applied

    Returns void

  • Protected

    Apply final custom model-specific cleaning rules after data schema fields are cleaned. Subclass models can implement this function as an ideal place to apply custom imputation or cleaning. Cleaning must be done in-place rather than returning a different object.

    Parameters

    Returns object

    The original data object, with cleaning performed inplace

  • Protected

    Pre-process a creation operation, potentially altering its instructions or input data. Pre-operation events only occur for the client which requested the operation.

    This batch-wise workflow occurs after individual _preCreate workflows and provides a final pre-flight check before a database operation occurs.

    Modifications to pending documents must mutate the documents array or alter individual document instances using updateSource.

    Parameters

    Returns Promise<boolean | void>

    Return false to cancel the creation operation entirely

  • Protected

    Pre-process a deletion operation, potentially altering its instructions or input data. Pre-operation events only occur for the client which requested the operation.

    This batch-wise workflow occurs after individual _preDelete workflows and provides a final pre-flight check before a database operation occurs.

    Modifications to the requested deletions are performed by mutating the operation object. updateSource.

    Parameters

    Returns Promise<boolean | void>

    Return false to cancel the deletion operation entirely

  • Protected

    Pre-process an update operation, potentially altering its instructions or input data. Pre-operation events only occur for the client which requested the operation.

    This batch-wise workflow occurs after individual _preUpdate workflows and provides a final pre-flight check before a database operation occurs.

    Modifications to the requested updates are performed by mutating the data array of the operation.

    Parameters

    Returns Promise<boolean | void>

    Return false to cancel the update operation entirely

  • Protected

    Recursively replace data references in a string change value.

    Parameters

    • raw: string
    • data: Record<string, unknown>

      An object providing replacements

    Returns string | null

    The string with all data references resolved

    An Error if data replacement failed