Entity

    Interface EntityCompanionDefinition<TFields, TIDField, TViewerContext, TEntity, TPrivacyPolicy, TSelectedFields>

    Definition for constructing a companion for an entity. Defines the core set of objects used to power the entity framework for a particular type of entity.

    interface EntityCompanionDefinition<
        TFields extends Record<string, any>,
        TIDField extends keyof NonNullable<Pick<TFields, TSelectedFields>>,
        TViewerContext extends ViewerContext,
        TEntity extends
            ReadonlyEntity<TFields, TIDField, TViewerContext, TSelectedFields>,
        TPrivacyPolicy extends
            EntityPrivacyPolicy<
                TFields,
                TIDField,
                TViewerContext,
                TEntity,
                TSelectedFields,
            >,
        TSelectedFields extends keyof TFields = keyof TFields,
    > {
        entityClass: IEntityClass<
            TFields,
            TIDField,
            TViewerContext,
            TEntity,
            TPrivacyPolicy,
            TSelectedFields,
        >;
        entityConfiguration: EntityConfiguration<TFields, TIDField>;
        entitySelectedFields?: TSelectedFields[];
        mutationTriggers?: EntityMutationTriggerConfiguration<
            TFields,
            TIDField,
            TViewerContext,
            TEntity,
            TSelectedFields,
        >;
        mutationValidators?: EntityMutationValidator<
            TFields,
            TIDField,
            TViewerContext,
            TEntity,
            TSelectedFields,
        >[];
        privacyPolicyClass: IPrivacyPolicyClass<TPrivacyPolicy>;
    }

    Type Parameters

    Index

    Properties

    entityClass: IEntityClass<
        TFields,
        TIDField,
        TViewerContext,
        TEntity,
        TPrivacyPolicy,
        TSelectedFields,
    >

    The concrete Entity class for which this is the definition.

    entityConfiguration: EntityConfiguration<TFields, TIDField>

    The EntityConfiguration for this entity.

    entitySelectedFields?: TSelectedFields[]

    An optional subset of fields defined in the EntityConfiguration which belong to this entity. For use when multiple types of entities are backed by a single table (EntityConfiguration) yet only expose a subset of the fields.

    mutationTriggers?: EntityMutationTriggerConfiguration<
        TFields,
        TIDField,
        TViewerContext,
        TEntity,
        TSelectedFields,
    >

    An optional list of EntityMutationTrigger for this entity.

    mutationValidators?: EntityMutationValidator<
        TFields,
        TIDField,
        TViewerContext,
        TEntity,
        TSelectedFields,
    >[]

    An optional list of EntityMutationValidator for this entity.

    privacyPolicyClass: IPrivacyPolicyClass<TPrivacyPolicy>

    The EntityPrivacyPolicy class for this entity.

    MMNEPVFCICPMFPCPTTAAATR