Class EntityLoader<TRetrievedItem>

The Entity loader.

This class aggregates multiple entity by UUID retrievals into a single or multiple database queries grouped by type.

Note that multiple retrievals of different vertex types would be queries separately due to access rules being applied at Gremlin query level per vertex type.

Mermaid

Retrieving entities

%%{init:{"theme":"dark"}}%% sequenceDiagram participant Resolvers participant EntityLoader participant Graph database Resolvers->>EntityLoader: Retrieve entity 1 EntityLoader->>Resolvers: Promise Resolvers->>EntityLoader: Retrieve entity 2 EntityLoader->>Resolvers: Promise Resolvers->>EntityLoader: Retrieve entity 3 EntityLoader->>Resolvers: Promise activate EntityLoader Note left of EntityLoader: Aggregates requests until next event loop tick EntityLoader->>Graph database: Retrieve entities 1, 2, 3 Graph database->>EntityLoader: Response Note left of EntityLoader: Resolves Promises deactivate EntityLoader EntityLoader->>Resolvers: Entity 1 EntityLoader->>Resolvers: Entity 2 EntityLoader->>Resolvers: Entity 3
%%{init:{"theme":"default"}}%% sequenceDiagram participant Resolvers participant EntityLoader participant Graph database Resolvers->>EntityLoader: Retrieve entity 1 EntityLoader->>Resolvers: Promise Resolvers->>EntityLoader: Retrieve entity 2 EntityLoader->>Resolvers: Promise Resolvers->>EntityLoader: Retrieve entity 3 EntityLoader->>Resolvers: Promise activate EntityLoader Note left of EntityLoader: Aggregates requests until next event loop tick EntityLoader->>Graph database: Retrieve entities 1, 2, 3 Graph database->>EntityLoader: Response Note left of EntityLoader: Resolves Promises deactivate EntityLoader EntityLoader->>Resolvers: Entity 1 EntityLoader->>Resolvers: Entity 2 EntityLoader->>Resolvers: Entity 3
sequenceDiagram
    participant Resolvers
    participant EntityLoader
    participant Graph database
    Resolvers->>EntityLoader: Retrieve entity 1
    EntityLoader->>Resolvers: Promise
    Resolvers->>EntityLoader: Retrieve entity 2
    EntityLoader->>Resolvers: Promise
    Resolvers->>EntityLoader: Retrieve entity 3
    EntityLoader->>Resolvers: Promise
    activate EntityLoader
    Note left of EntityLoader: Aggregates requests until next event loop tick
    EntityLoader->>Graph database: Retrieve entities 1, 2, 3
    Graph database->>EntityLoader: Response
    Note left of EntityLoader: Resolves Promises
    deactivate EntityLoader
    EntityLoader->>Resolvers: Entity 1
    EntityLoader->>Resolvers: Entity 2
    EntityLoader->>Resolvers: Entity 3

Type Parameters

  • TRetrievedItem extends Record<string, any> = Record<string, any>

Hierarchy

Constructors

Properties

graphHandler: GraphHandler

Methods

  • The return value transformation callback.

    Called after the item was retrieved from DataLoader. Child classes may override this method to perform transformation of the data being returned.

    Parameters

    • item: null | TRetrievedItem

      The item being retrieved from DataLoader.

    • context: KosmosUserContext<object>

      The user context.

    • _: EntityDataLoaderId

      The DataLoader identifier object which may contain properties used to initialize the Data Loader.

    • __namedParameters: EntityLoaderTransformParams = {}

      Class-specific transformation params.

    Returns null | TRetrievedItem | Exclude<TRetrievedItem, "label"> | {
        label: undefined;
    }

Generated using TypeDoc