Machine
Combinators
Constructors
Signature
declare const make: {
<State, Public extends Any, Private extends Any, InitErr, R>(
initialize: Effect<ProcedureList<State, Public, Private, R>, InitErr, R>,
): Machine<State, Public, Private, void, InitErr, Exclude<R, Scope | MachineContext>>;
<State, Public extends Any, Private extends Any, Input, InitErr, R>(
initialize: Initialize<Input, State, Public, Private, R, InitErr, R>,
): Machine<State, Public, Private, Input, InitErr, Exclude<R, Scope | MachineContext>>;
};makeSerializable
Added in v1.0.0
Source
Signature
declare const makeSerializable: {
<State, IS, RS, Public extends All, Private extends All, InitErr, R>(
options: {
readonly input?: undefined;
readonly state: Schema.Schema<State, IS, RS>;
},
initialize:
| Effect<SerializableProcedureList<State, Public, Private, R>, InitErr, R>
| InitializeSerializable<void, State, Public, Private, R, InitErr, R>,
): SerializableMachine<
State,
Public,
Private,
void,
InitErr,
Exclude<R, Scope | MachineContext>,
RS
>;
<State, IS, RS, Input, II, RI, Public extends All, Private extends All, InitErr, R>(
options: {
readonly input: Schema.Schema<Input, II, RI>;
readonly state: Schema.Schema<State, IS, RS>;
},
initialize: InitializeSerializable<Input, State, Public, Private, R, InitErr, R>,
): SerializableMachine<
State,
Public,
Private,
Input,
InitErr,
Exclude<R, Scope | MachineContext>,
RS | RI
>;
};Signature
declare function makeWith<State, Input = void>(): {
<Public extends Any, Private extends Any, InitErr, R>(
initialize: Effect<ProcedureList<State, Public, Private, R>, InitErr, R>,
): Machine<State, Public, Private, void, InitErr, Exclude<R, Scope | MachineContext>>;
<Public extends Any, Private extends Any, InitErr, R>(
initialize: Initialize<Input, State, Public, Private, R, InitErr, R>,
): Machine<State, Public, Private, Input, InitErr, Exclude<R, Scope | MachineContext>>;
};Errors
MachineDefect
Added in v1.0.0
Source
Signature
declare class MachineDefect extends any {
constructor();
static wrap<A, E, R>(effect: Effect<A, E, R>): Effect<A, MachineDefect, R>;
}Models
Signature
interface Actor<M extends Machine.Any> extends unknown<Machine.State<M>> {
readonly [ActorTypeId]: typeof ActorTypeId;
readonly input: Input<M>;
readonly join: Effect<never, MachineDefect | InitError<M>>;
readonly machine: M;
readonly send: <Req extends any>(request: Req) => Effect<Success<Req>, Error<Req>>;
}Signature
interface Machine<
State,
Public extends Procedure.TaggedRequest.Any,
Private extends Procedure.TaggedRequest.Any,
Input,
InitErr,
R,
> extends Pipeable {
readonly [TypeId]: typeof TypeId;
readonly initialize: Initialize<Input, State, Public, Private, R, InitErr, R>;
readonly retryPolicy: Schedule<unknown, InitErr | MachineDefect, R, never> | undefined;
}SerializableActor interface
Added in v1.0.0
Source
Signature
interface SerializableActor<M extends Machine.Any> extends Actor<M> {
readonly sendUnknown: (
request: unknown,
) => Effect<ExitEncoded<unknown, unknown, unknown>, ParseError>;
}SerializableMachine interface
Added in v1.0.0
Source
Signature
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]: typeof SerializableTypeId;
readonly schemaInput: any;
readonly schemaState: any;
}Procedures
procedures
Added in v1.0.0
Source
serializable
Added in v1.0.0
Source
Runtime
Signature
declare function boot<M extends Any>(
self: M,
...__namedParameters: [Input<M>] extends [void]
? [
input?: Input,
options?: {
readonly previousState?: State<M>;
},
]
: [
input: Input<M>,
options?: {
readonly previousState?: State<M>;
},
]
): Effect<
M extends {
readonly [SerializableTypeId]: typeof SerializableTypeId;
}
? SerializableActor<M>
: Actor<M>,
never,
Scope | Context<M>
>;Signature
declare function restore<State, Public extends All, Private extends All, Input, InitErr, R, SR>(
self: SerializableMachine<State, Public, Private, Input, InitErr, R, SR>,
snapshot: readonly [unknown, unknown],
): Effect<
Actor<SerializableMachine<State, Public, Private, Input, InitErr, R, SR>>,
ParseError,
R | SR
>;Signature
declare function snapshot<State, Public extends All, Private extends All, Input, InitErr, R, SR>(
self: Actor<SerializableMachine<State, Public, Private, Input, InitErr, R, SR>>,
): Effect<[input: unknown, state: unknown], ParseError, SR>;Symbols
Tracing
currentTracingEnabled
Added in v1.0.0
Source
Signature
declare const currentTracingEnabled: FiberRef.FiberRef<boolean>;withTracingEnabled
Added in v1.0.0
Source
Signature
declare const withTracingEnabled: {
(enabled: boolean): <A, E, R>(effect: Effect<A, E, R>) => Effect<A, E, R>;
<A, E, R>(effect: Effect<A, E, R>, enabled: boolean): Effect<A, E, R>;
};Type Ids
ActorTypeId
Added in v1.0.0
Source
Signature
declare const ActorTypeId: unique symbol;ActorTypeId type
Added in v1.0.0
Source
Signature
type ActorTypeId = typeof ActorTypeId;SerializableTypeId
Added in v1.0.0
Source
Signature
declare const SerializableTypeId: unique symbol;SerializableTypeId type
Added in v1.0.0
Source
Signature
type SerializableTypeId = typeof SerializableTypeId;Signature
declare const TypeId: unique symbol;Signature
type TypeId = typeof TypeId;