Skip to content

RequestBlock

12 exports Added in v2.0.0 Source

Constructors

empty

Added in v2.0.0 Source

Signature

declare const empty: RequestBlock;

Signature

declare const mapRequestResolvers: <A>(
  self: RequestBlock,
  f: (dataSource: RequestResolver.RequestResolver<A>) => RequestResolver.RequestResolver<A>,
) => RequestBlock;

parallel

Added in v2.0.0 Source

Signature

declare const parallel: (self: RequestBlock, that: RequestBlock) => RequestBlock;

reduce

Added in v2.0.0 Source

Signature

declare const reduce: <Z>(self: RequestBlock, reducer: RequestBlock.Reducer<Z>) => Z;

sequential

Added in v2.0.0 Source

Signature

declare const sequential: (self: RequestBlock, that: RequestBlock) => RequestBlock;

single

Added in v2.0.0 Source

Signature

declare const single: <A>(
  dataSource: RequestResolver.RequestResolver<A>,
  blockedRequest: Request.Entry<A>,
) => RequestBlock;

Models

Empty interface

Added in v2.0.0 Source

Signature

interface Empty {
  readonly _tag: "Empty";
}

Par interface

Added in v2.0.0 Source

Signature

interface Par {
  readonly _tag: "Par";
  readonly left: RequestBlock;
  readonly right: RequestBlock;
}

RequestBlock

Added in v2.0.0 Source

RequestBlock type

Added in v2.0.0 Source

RequestBlock captures a collection of blocked requests as a data structure. By doing this the library is able to preserve information about which requests must be performed sequentially and which can be performed in parallel, allowing for maximum possible batching and pipelining while preserving ordering guarantees.

Signature

type RequestBlock = Empty | Par | Seq | Single;

Seq interface

Added in v2.0.0 Source

Signature

interface Seq {
  readonly _tag: "Seq";
  readonly left: RequestBlock;
  readonly right: RequestBlock;
}

Single interface

Added in v2.0.0 Source

Signature

interface Single {
  readonly _tag: "Single";
  readonly blockedRequest: Entry<unknown>;
  readonly dataSource: RequestResolver<unknown>;
}