Skip to content

ProcedureList

9 exports Added in v1.0.0 Source

Combinators

add

Added in v1.0.0 Source

Signature

declare function add<Req extends Any>(): {
  <State, Public extends Any, Private extends Any, R2>(
    tag: Req["_tag"],
    handler: Handler<Req, NoInfer<State>, NoInfer<Public> | NoInfer<Private>, R2>,
  ): <R>(
    self: ProcedureList<State, Public, Private, R>,
  ) => ProcedureList<State, Req | Public, Private, R2 | R>;
  <State, Public extends Any, Private extends Any, R, R2>(
    self: ProcedureList<State, Public, Private, R>,
    tag: Req["_tag"],
    handler: Handler<Req, NoInfer<State>, NoInfer<Public> | NoInfer<Private>, R2>,
  ): ProcedureList<State, Req | Public, Private, R | R2>;
};

addPrivate

Added in v1.0.0 Source

Signature

declare function addPrivate<Req extends Any>(): {
  <State, Public extends Any, Private extends Any, R2>(
    tag: Req["_tag"],
    handler: Handler<Req, NoInfer<State>, NoInfer<Public> | NoInfer<Private>, R2>,
  ): <R>(
    self: ProcedureList<State, Public, Private, R>,
  ) => ProcedureList<State, Public, Req | Private, R2 | R>;
  <State, Public extends Any, Private extends Any, R, R2>(
    self: ProcedureList<State, Public, Private, R>,
    tag: Req["_tag"],
    handler: Handler<Req, NoInfer<State>, NoInfer<Public> | NoInfer<Private>, R2>,
  ): ProcedureList<State, Public, Req | Private, R | R2>;
};

addProcedure

Added in v1.0.0 Source

Signature

declare const addProcedure: {
  <Req extends Any, State, R2>(
    procedure: Procedure<Req, State, R2>,
  ): <Public extends Any, Private extends Any, R>(
    self: ProcedureList<State, Public, Private, R>,
  ) => ProcedureList<State, Req | Public, Private, R2 | R>;
  <State, Public extends Any, Private extends Any, R, Req extends Any, R2>(
    self: ProcedureList<State, Public, Private, R>,
    procedure: Procedure<Req, State, R2>,
  ): ProcedureList<State, Public | Req, Private, R | R2>;
};

Signature

declare const addProcedurePrivate: {
  <Req extends Any, State, R2>(
    procedure: Procedure<Req, State, R2>,
  ): <Public extends Any, Private extends Any, R>(
    self: ProcedureList<State, Public, Private, R>,
  ) => ProcedureList<State, Public, Req | Private, R2 | R>;
  <State, Public extends Any, Private extends Any, R, Req extends Any, R2>(
    self: ProcedureList<State, Public, Private, R>,
    procedure: Procedure<Req, State, R2>,
  ): ProcedureList<State, Public, Private | Req, R | R2>;
};

Signature

declare const withInitialState: {
  <State>(
    initialState: NoInfer<State>,
  ): <Public extends Any, Private extends Any, R>(
    self: ProcedureList<State, Public, Private, R>,
  ) => ProcedureList<State, Public, Private, R>;
  <State, Public extends Any, Private extends Any, R>(
    self: ProcedureList<State, Public, Private, R>,
    initialState: NoInfer<State>,
  ): ProcedureList<State, Public, Private, R>;
};

Constructors

make

Added in v1.0.0 Source

Signature

declare function make<State>(
  initialState: State,
  options?: {
    readonly identifier?: string;
  },
): ProcedureList<State, never, never, never>;

Models

ProcedureList interface

Added in v1.0.0 Source

Signature

interface ProcedureList<State, Public extends Procedure.TaggedRequest.Any, Private extends Procedure.TaggedRequest.Any, R> extends Effect<ProcedureList<State, Public, Private, R>> {
  readonly [TypeId]: typeof TypeId;
  readonly identifier: string;
  readonly initialState: State;
  readonly private: readonly Array<Procedure<Private, State, R>>;
  readonly public: readonly Array<Procedure<Public, State, R>>;
}

Type Ids

TypeId

Added in v1.0.0 Source

Signature

declare const TypeId: unique symbol;

TypeId type

Added in v1.0.0 Source

Signature

type TypeId = typeof TypeId;