Hyperlinkv0.8.0-beta.28

Process

Source src/Process.ts:24329 lines
export interface ProcessServiceDefinition<Self, Id extends string, E, R>
  extends Context.ServiceClass<Self, Id, Process<R>>,
    ProcessDefinition<Id, R> {
  readonly tag: Context.Key<Self, Process<R>>;
  readonly layer: Layer.Layer<Self>;
  /**
   * Factory defaults before {@link configure} layers (see `HyperlinkConfigure` module).
   */
  readonly defaultSpec: ProcessMakeOptions<E, R>;
  /**
   * Append a configure patch; merge with {@link layer} via `Layer.provideMerge`.
   */
  readonly configure: (
    patch: ConfigPatch<ProcessMakeOptions<E, R>>,
  ) => Layer.Layer<never>;
  /**
   * Patch only the supervised repeat `effect`: `fn(previous) => next`.
   */
  readonly wrapEffect: (
    fn: (
      previous: ProcessMakeOptions<E, R>["effect"],
    ) => ProcessMakeOptions<E, R>["effect"],
  ) => Layer.Layer<never>;
  /**
   * {@link Process} built from {@link defaultSpec} after folding configure patches.
   * the process manager uses this when assembling the group runtime.
   */
  readonly buildConfiguredProcess: Effect.Effect<Process<R>>;
}