Interface EntityLoadThroughDirective<TViewerContext, TFields, TAssociatedFields, TAssociatedID, TAssociatedEntity, TAssociatedPrivacyPolicy, TSelectedFields, TAssociatedSelectedFields>

Instruction for each step of a load-associated-through method.

interface EntityLoadThroughDirective<
    TViewerContext extends ViewerContext,
    TFields,
    TAssociatedFields extends object,
    TAssociatedID extends
        NonNullable<TAssociatedFields[TAssociatedSelectedFields]>,
    TAssociatedEntity extends
        ReadonlyEntity<
            TAssociatedFields,
            TAssociatedID,
            TViewerContext,
            TAssociatedSelectedFields,
        >,
    TAssociatedPrivacyPolicy extends
        EntityPrivacyPolicy<
            TAssociatedFields,
            TAssociatedID,
            TViewerContext,
            TAssociatedEntity,
            TAssociatedSelectedFields,
        >,
    TSelectedFields extends keyof TFields = keyof TFields,
    TAssociatedSelectedFields extends
        keyof TAssociatedFields = keyof TAssociatedFields,
> {
    associatedEntityClass: IEntityClass<
        TAssociatedFields,
        TAssociatedID,
        TViewerContext,
        TAssociatedEntity,
        TAssociatedPrivacyPolicy,
        TAssociatedSelectedFields,
    >;
    associatedEntityLookupByField?: TAssociatedSelectedFields;
    fieldIdentifyingAssociatedEntity: TSelectedFields;
}

Type Parameters

Properties

Class of entity to load at this step.

associatedEntityLookupByField?: TAssociatedSelectedFields

Field by which to load the instance of associatedEntityClass. If not provided, the associatedEntityClass instance is fetched by its ID.

fieldIdentifyingAssociatedEntity: TSelectedFields

Field of the current entity with which to load an instance of associatedEntityClass.