Hyperlinkv0.9.0-beta.0

WorkPool

WorkPool.layerfunctionsrc/WorkPool.ts:1992
<
  Self,
  F extends QueueItemFields = QueueItemFields,
  R = never,
  RR = never,
  Success extends Schema.Top = Schema.Void,
  Error extends Schema.Top = Schema.Never
>(
  tag: QueueTagFor<Self, F, Success, Error>,
  config: QueueVerbConfig<F, QueueErrorValueOf<Error>, R, RR, Success>
): Layer.Layer<Self | Local<Self> | Store.Storage, never, R | RR>
<
  Self,
  F extends PriorityItemFields = PriorityItemFields,
  E = never,
  R = never,
  RR = never
>(
  tag: HyperlinkTag<Self, PriorityInstanceSpec<F>>,
  config: PriorityLayerConfig<Schema.Struct<F>["Type"], E, R, RR>
): Layer.Layer<Self | Local<Self> | Store.Storage, never, R | RR>

Run this WorkPool locally — soft-defaults Store.Storage (R fulfilled; override by providing an app store into this layer). Accepts a plain Tag or a priority tag and dispatches to the matching engine. layerMemory is an alias for the same soft-default.

Source src/WorkPool.ts:199246 lines
export function layer<
  Self,
  F extends QueueItemFields = QueueItemFields,
  R = never,
  RR = never,
  Success extends Schema.Top = typeof Schema.Void,
  Error extends Schema.Top = typeof Schema.Never,
>(
  tag: QueueTagFor<Self, F, Success, Error>,
  config: QueueVerbConfig<F, QueueErrorValueOf<Error>, R, RR, Success>,
): Layer.Layer<Self | Local<Self> | Store.Storage, never, R | RR>;
export function layer<
  Self,
  F extends PriorityItemFields = PriorityItemFields,
  E = never,
  R = never,
  RR = never,
>(
  tag: HyperlinkTag<Self, PriorityInstanceSpec<F>>,
  config: PriorityLayerConfig<Schema.Struct<F>["Type"], E, R, RR>,
): Layer.Layer<Self | Local<Self> | Store.Storage, never, R | RR>;
export function layer(
  tag: AnyPoolTag,
  config: unknown,
): Layer.Layer<unknown, never, unknown> {
  return isPriorityTag(tag)
    ? withDefaultMemory(
        Layer.unwrap(
          Effect.map(
            buildPriorityImpl(
              tag,
              config as PriorityLayerConfig<Schema.Struct<PriorityItemFields>["Type"], never, never, never>,
            ),
            (built) => Hyperlink.layer(tag, Hyperlink.grantLocal(tag, built)),
          ),
        ),
      )
    : withDefaultMemory(
        Layer.unwrap(
          Effect.map(
            buildQueueImpl(tag, config as QueueVerbConfig<QueueItemFields, unknown, never, never, Schema.Top>),
            (built) => Hyperlink.layer(tag, Hyperlink.grantLocal(tag, built)),
          ),
        ),
      );
}
Referenced by 1 symbols