Thanks to visit codestin.com
Credit goes to effect-ts.github.io

Skip to main content Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App Codestin Search App

Machine.ts overview

Since v1.0.0


Exports Grouped by Category


combinators

retry

Signature

declare const retry: {
  <M extends Machine.Any, Out, In extends Machine.InitError<M> | MachineDefect, R>(
    policy: Schedule.Schedule<Out, In, R>
  ): (self: M) => Machine.AddContext<M, R>
  <M extends Machine.Any, Out, In extends Machine.InitError<M> | MachineDefect, R>(
    self: M,
    policy: Schedule.Schedule<Out, In, R>
  ): Machine.AddContext<M, R>
}

Source

Since v1.0.0

constructors

make

Signature

declare const make: {
  <State, Public extends Procedure.TaggedRequest.Any, Private extends Procedure.TaggedRequest.Any, InitErr, R>(
    initialize: Effect.Effect<ProcedureList<State, Public, Private, R>, InitErr, R>
  ): Machine<State, Public, Private, void, InitErr, Exclude<R, Scope.Scope | MachineContext>>
  <State, Public extends Procedure.TaggedRequest.Any, Private extends Procedure.TaggedRequest.Any, Input, InitErr, R>(
    initialize: Machine.Initialize<Input, State, Public, Private, R, InitErr, R>
  ): Machine<State, Public, Private, Input, InitErr, Exclude<R, Scope.Scope | MachineContext>>
}

Source

Since v1.0.0

makeSerializable

Signature

declare const makeSerializable: {
  <State, IS, RS, Public extends Schema.TaggedRequest.All, Private extends Schema.TaggedRequest.All, InitErr, R>(
    options: { readonly state: Schema.Schema<State, IS, RS>; readonly input?: undefined },
    initialize:
      | Effect.Effect<SerializableProcedureList<State, Public, Private, R>, InitErr, R>
      | Machine.InitializeSerializable<void, State, Public, Private, R, InitErr, R>
  ): SerializableMachine<State, Public, Private, void, InitErr, Exclude<R, Scope.Scope | MachineContext>, RS>
  <
    State,
    IS,
    RS,
    Input,
    II,
    RI,
    Public extends Schema.TaggedRequest.All,
    Private extends Schema.TaggedRequest.All,
    InitErr,
    R
  >(
    options: { readonly state: Schema.Schema<State, IS, RS>; readonly input: Schema.Schema<Input, II, RI> },
    initialize: Machine.InitializeSerializable<Input, State, Public, Private, R, InitErr, R>
  ): SerializableMachine<State, Public, Private, Input, InitErr, Exclude<R, Scope.Scope | MachineContext>, RS | RI>
}

Source

Since v1.0.0

makeWith

Signature

declare const makeWith: <State, Input = void>() => {
  <Public extends Procedure.TaggedRequest.Any, Private extends Procedure.TaggedRequest.Any, InitErr, R>(
    initialize: Effect.Effect<ProcedureList<State, Public, Private, R>, InitErr, R>
  ): Machine<State, Public, Private, void, InitErr, Exclude<R, Scope.Scope | MachineContext>>
  <Public extends Procedure.TaggedRequest.Any, Private extends Procedure.TaggedRequest.Any, InitErr, R>(
    initialize: Machine.Initialize<Input, State, Public, Private, R, InitErr, R>
  ): Machine<State, Public, Private, Input, InitErr, Exclude<R, Scope.Scope | MachineContext>>
}

Source

Since v1.0.0

errors

MachineDefect (class)

Signature

declare class MachineDefect

Source

Since v1.0.0

wrap (static method)

Signature

declare const wrap: <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, MachineDefect, R>

Source

Since v1.0.0

models

Actor (interface)

Signature

export interface Actor<M extends Machine.Any> extends Subscribable.Subscribable<Machine.State<M>> {
  readonly [ActorTypeId]: ActorTypeId
  readonly machine: M
  readonly input: Machine.Input<M>
  readonly send: <Req extends Machine.Public<M>>(
    request: Req
  ) => Effect.Effect<Request.Success<Req>, Request.Error<Req>>
  readonly join: Effect.Effect<never, Machine.InitError<M> | MachineDefect>
}

Source

Since v1.0.0

Machine (interface)

Signature

export interface Machine<
  State,
  Public extends Procedure.TaggedRequest.Any,
  Private extends Procedure.TaggedRequest.Any,
  Input,
  InitErr,
  R
> extends Pipeable {
  readonly [TypeId]: TypeId
  readonly initialize: Machine.Initialize<Input, State, Public, Private, R, InitErr, R>
  readonly retryPolicy: Schedule.Schedule<unknown, InitErr | MachineDefect, R> | undefined
}

Source

Since v1.0.0

Machine (namespace)

Source

Since v1.0.0

Any (type alias)

Signature

type Any =
  | Machine<any, any, any, any, any, any>
  | Machine<any, any, any, any, never, any>
  | Machine<any, never, any, any, never, any>
  | Machine<any, any, never, any, never, any>
  | Machine<any, never, never, any, never, any>

Source

Since v1.0.0

Initialize (type alias)

Signature

type Initialize<Input, State, Public, Private, R, E, InitR> = (
  input: Input,
  previousState?: State | undefined
) => Effect.Effect<ProcedureList<State, Public, Private, R>, E, InitR>

Source

Since v1.0.0

InitializeSerializable (type alias)

Signature

type InitializeSerializable<Input, State, Public, Private, R, E, InitR> = (
  input: Input,
  previousState?: State | undefined
) => Effect.Effect<SerializableProcedureList<State, Public, Private, R>, E, InitR>

Source

Since v1.0.0

Public (type alias)

Signature

type Public<M> = M extends Machine<infer _S, infer Public, infer _Pr, infer _I, infer _IE, infer _R> ? Public : never

Source

Since v1.0.0

Private (type alias)

Signature

type Private<M> = M extends Machine<infer _S, infer _Pu, infer Private, infer _I, infer _IE, infer _R> ? Private : never

Source

Since v1.0.0

State (type alias)

Signature

type State<M> = M extends Machine<infer State, infer _Pu, infer _Pr, infer _I, infer _IE, infer _R> ? State : never

Source

Since v1.0.0

InitError (type alias)

Signature

type InitError<M> =
  M extends Machine<infer _S, infer _Pu, infer _Pr, infer _I, infer InitErr, infer _R> ? InitErr : never

Source

Since v1.0.0

Context (type alias)

Signature

type Context<M> = M extends Machine<infer _S, infer _Pu, infer _Pr, infer _I, infer _IE, infer R> ? R : never

Source

Since v1.0.0

Input (type alias)

Signature

type Input<M> = M extends Machine<infer _S, infer _Pu, infer _Pr, infer Input, infer _IE, infer _R> ? Input : never

Source

Since v1.0.0

AddContext (type alias)

Signature

type AddContext<M, R, E> =
  M extends SerializableMachine<
    infer State,
    infer Public,
    infer Private,
    infer Input,
    infer InitErr,
    infer R2,
    infer SR
  >
    ? SerializableMachine<State, Public, Private, Input, InitErr | E, R | R2, SR>
    : M extends Machine<infer State, infer Public, infer Private, infer Input, infer InitErr, infer R2>
      ? Machine<State, Public, Private, Input, InitErr | E, R | R2>
      : never

Source

Since v1.0.0

SerializableActor (interface)

Signature

export interface SerializableActor<M extends Machine.Any> extends Actor<M> {
  readonly sendUnknown: (
    request: unknown
  ) => Effect.Effect<Schema.ExitEncoded<unknown, unknown, unknown>, ParseResult.ParseError>
}

Source

Since v1.0.0

SerializableMachine (interface)

Signature

export interface SerializableMachine<
  State,
  Public extends Schema.TaggedRequest.All,
  Private extends Schema.TaggedRequest.All,
  Input,
  InitErr,
  R,
  SR
> extends Machine<State, Public, Private, Input, InitErr, R> {
  readonly [SerializableTypeId]: SerializableTypeId
  readonly schemaInput: Schema.Schema<Input, unknown, SR>
  readonly schemaState: Schema.Schema<State, unknown, SR>
}

Source

Since v1.0.0

procedures

procedures (namespace export)

Re-exports all named exports from the “./Machine/ProcedureList.js” module as procedures.

Signature

export * as procedures from "./Machine/ProcedureList.js"

Source

Since v1.0.0

serializable (namespace export)

Re-exports all named exports from the “./Machine/SerializableProcedureList.js” module as serializable.

Signature

export * as serializable from "./Machine/SerializableProcedureList.js"

Source

Since v1.0.0

runtime

boot

Signature

declare const boot: <M extends Machine.Any>(
  self: M,
  ...[input, options]: [Machine.Input<M>] extends [void]
    ? [input?: Machine.Input<M>, options?: { readonly previousState?: Machine.State<M> }]
    : [input: Machine.Input<M>, options?: { readonly previousState?: Machine.State<M> }]
) => Effect.Effect<
  M extends { readonly [SerializableTypeId]: SerializableTypeId } ? SerializableActor<M> : Actor<M>,
  never,
  Machine.Context<M> | Scope.Scope
>

Source

Since v1.0.0

restore

Signature

declare const restore: <
  State,
  Public extends Schema.TaggedRequest.All,
  Private extends Schema.TaggedRequest.All,
  Input,
  InitErr,
  R,
  SR
>(
  self: SerializableMachine<State, Public, Private, Input, InitErr, R, SR>,
  snapshot: readonly [input: unknown, state: unknown]
) => Effect.Effect<
  Actor<SerializableMachine<State, Public, Private, Input, InitErr, R, SR>>,
  ParseResult.ParseError,
  R | SR
>

Source

Since v1.0.0

snapshot

Signature

declare const snapshot: <
  State,
  Public extends Schema.TaggedRequest.All,
  Private extends Schema.TaggedRequest.All,
  Input,
  InitErr,
  R,
  SR
>(
  self: Actor<SerializableMachine<State, Public, Private, Input, InitErr, R, SR>>
) => Effect.Effect<[input: unknown, state: unknown], ParseResult.ParseError, SR>

Source

Since v1.0.0

symbols

NoReply

Signature

declare const NoReply: unique symbol

Source

Since v1.0.0

tags

MachineContext (class)

Signature

declare class MachineContext

Source

Since v1.0.0

tracing

currentTracingEnabled

Signature

declare const currentTracingEnabled: FiberRef.FiberRef<boolean>

Source

Since v1.0.0

withTracingEnabled

Signature

declare const withTracingEnabled: {
  (enabled: boolean): <A, E, R>(effect: Effect.Effect<A, E, R>) => Effect.Effect<A, E, R>
  <A, E, R>(effect: Effect.Effect<A, E, R>, enabled: boolean): Effect.Effect<A, E, R>
}

Source

Since v1.0.0

type ids

ActorTypeId

Signature

declare const ActorTypeId: unique symbol

Source

Since v1.0.0

ActorTypeId (type alias)

Signature

type ActorTypeId = typeof ActorTypeId

Source

Since v1.0.0

SerializableTypeId

Signature

declare const SerializableTypeId: unique symbol

Source

Since v1.0.0

SerializableTypeId (type alias)

Signature

type SerializableTypeId = typeof SerializableTypeId

Source

Since v1.0.0

TypeId

Signature

declare const TypeId: unique symbol

Source

Since v1.0.0

TypeId (type alias)

Signature

type TypeId = typeof TypeId

Source

Since v1.0.0