Hyperlinkv0.8.0-beta.28

QueueHyperlink

QueueHyperlink.serveconstsrc/QueueHyperlink.ts:1471
<
  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>
  | HandlerContextOf<QueueInstanceSpec<F>>
  | Store.Storage,
  never,
  R | RR
>

Serve this queue and grant its local instance from one materialization — run the worker / refill / persist engine behind the tag, mount its RPC handlers, register into Hyperlink.servedHyperlinksLayer, and grant Self | Local<Self> so co-located code can yield* Tag. The served cells are the in-process instance (one engine, one peersLayer); the worker requirement R is preserved for per-resource Layer.provide. This is the queue's counterpart to Hyperlink.serve; a served-only gateway uses serveRemote.

Node.httpServer([
  QueueHyperlink.serve(RosterQueue, { effect, itemSchema }),
  Process.serve(SeasonMatches, { effect }),
]).pipe(Layer.provide(NodeHttpServer.layer({ port: 3001 })));
export const serve = <
  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> | HandlerContextOf<QueueInstanceSpec<F>> | Store.Storage,
  never,
  R | RR
> =>
  withDefaultMemory(
    Layer.unwrap(
      Effect.map(buildQueueImpl(tag, config), (built) => Hyperlink.serve(tag, built)),
    ),
  );
Referenced by 1 symbols