View Source Dataloader.Source protocol (dataloader v2.0.0)

Link to this section Summary

Functions

Returns whether or not the source should be running synchronously or asynchronously with respect to the process making Dataloader function calls.

Fetch the result found under the given batch and item keys.

Enqueue an item to be loaded under a given batch

Determine if there are any batches that have not yet been run.

Put a value into the results.

Run any batches queued up for this source.

Returns the timeout (in ms) for the source.

Link to this section Types

@type batch_key() :: term()
@type item_key() :: term()
@type t() :: term()

Link to this section Functions

@spec async?(t()) :: boolean()

Returns whether or not the source should be running synchronously or asynchronously with respect to the process making Dataloader function calls.

Link to this function

fetch(source, batch_key, item_key)

View Source
@spec fetch(t(), batch_key(), item_key()) :: {:ok, term()} | {:error, term()}

Fetch the result found under the given batch and item keys.

Link to this function

load(source, batch_key, item_key)

View Source
@spec load(t(), batch_key(), item_key()) :: t()

Enqueue an item to be loaded under a given batch

Link to this function

pending_batches?(source)

View Source
@spec pending_batches?(t()) :: boolean()

Determine if there are any batches that have not yet been run.

Link to this function

put(source, batch_key, item_key, item)

View Source
@spec put(t(), batch_key(), item_key(), term()) :: t()

Put a value into the results.

Useful for warming caches. The source is permitted to reject the value.

@spec run(t()) :: t()

Run any batches queued up for this source.

@spec timeout(t()) :: number()

Returns the timeout (in ms) for the source.

This is important for ensuring the dataloader obeys the timeouts when running multiple sources concurrently