• Public
  • Public/Protected
  • All

A subclass of ObjectField which supports a type-specific data object.





document: {}

The canonical document name of the document type which belongs in this field

Type declaration

    The initially provided options which configure the data field

    name: any

    The field name of this DataField instance. This is assigned by SchemaField#initialize.

    parent: any

    A reference to the parent schema to which this DataField belongs. This is assigned by SchemaField#initialize.

    recursive: boolean = true
    hierarchical: boolean = false

    Whether this field defines part of a Document/Embedded Document hierarchy.


    • get documentName(): string
    • A convenience accessor for the name of the document type associated with this TypeDataField

      Returns string

    • get fieldPath(): string
    • A dot-separated string representation of the field path within the parent schema.

      Returns string

    • get _defaults(): any
    • inheritdoc

      Returns any


    • getModelForType(type: string): typeof DataModel
    • Get the DataModel definition that should be used for this type of document.


      • type: string

        The Document instance type

      Returns typeof DataModel

      The DataModel class or null

    • getInitialValue(data: any): any
    • _cleanType(value: any, options: any): any
    • initialize(value: any, model: any, options?: {}): any
    • _validateModel(changes: any, options: any): any
    • toObject(value: any): any
    • migrateSource(sourceData: any, fieldData: any): void
    • Migrate this field's candidate source data.


      • sourceData: any

        Candidate source data of the root model

      • fieldData: any

        The value of this field within the source data

      Returns void

    • _cast(value: any): any
    • apply(fn: string | Function, value: any, options?: any): any
    • Apply a function to this DataField which propagates through recursively to any contained data schema.


      • fn: string | Function

        The function to apply

      • value: any

        The current value of this field

      • options: any = {}

      Returns any

      The results object

    • clean(value: any, options: { partial: boolean; source: any }): any
    • Coerce source data to ensure that it conforms to the correct data type for the field. Data coercion operations should be simple and synchronous as these are applied whenever a DataModel is constructed. For one-off cleaning of user-provided input the sanitize method should be used.


      • value: any

        The initial value

      • options: { partial: boolean; source: any }
        • partial: boolean
        • source: any

      Returns any

      The cast value

    • Validate a candidate input for this field, ensuring it meets the field requirements. A validation failure can be provided as a raised Error (with a string message), by returning false, or by returning a DataModelValidationFailure instance. A validator which returns true denotes that the result is certainly valid and further validations are unnecessary.


      Returns DataModelValidationFailure

      Returns a DataModelValidationFailure if a validation failure occurred.

    • _validateSpecial(value: any): boolean | void
    • Special validation rules which supersede regular field validation. This validator screens for certain values which are otherwise incompatible with this field like null or undefined.


      May throw a specific error if the value is not valid


      • value: any

        The candidate value

      Returns boolean | void

      A boolean to indicate with certainty whether the value is valid. Otherwise, return void.

    • Recursively traverse a schema and retrieve a field specification by a given path


      • path: string[]

        The field path as an array of strings

      Returns TypeDataField

    • Return the package that provides the sub-type for the given model.


      • model: DataModel

        The model instance created for this sub-type.

      Returns Module | System