Skip to content

DurableDeferred

20 exports Added in v1.0.0 Source

Combinators

done

Added in v1.0.0 Source

Signature

declare const done: {
  <Success extends Any, Error extends All>(options: {
    readonly exit: Exit.Exit<Success["Type"], Error["Type"]>;
    readonly token: Token;
  }): (
    self: DurableDeferred<Success, Error>,
  ) => Effect<void, never, WorkflowEngine | Success["Context"] | Error["Context"]>;
  <Success extends Any, Error extends All>(
    self: DurableDeferred<Success, Error>,
    options: {
      readonly exit: Exit.Exit<Success["Type"], Error["Type"]>;
      readonly token: Token;
    },
  ): Effect<void, never, WorkflowEngine | Success["Context"] | Error["Context"]>;
};

fail

Added in v1.0.0 Source

Signature

declare const fail: {
  <Success extends Any, Error extends All>(options: {
    readonly error: Error["Type"];
    readonly token: Token;
  }): (
    self: DurableDeferred<Success, Error>,
  ) => Effect<void, never, WorkflowEngine | Error["Context"]>;
  <Success extends Any, Error extends All>(
    self: DurableDeferred<Success, Error>,
    options: {
      readonly error: Error["Type"];
      readonly token: Token;
    },
  ): Effect<void, never, WorkflowEngine | Error["Context"]>;
};

failCause

Added in v1.0.0 Source

Signature

declare const failCause: {
  <Success extends Any, Error extends All>(options: {
    readonly cause: Cause.Cause<Error["Type"]>;
    readonly token: Token;
  }): (
    self: DurableDeferred<Success, Error>,
  ) => Effect<void, never, WorkflowEngine | Error["Context"]>;
  <Success extends Any, Error extends All>(
    self: DurableDeferred<Success, Error>,
    options: {
      readonly cause: Cause.Cause<Error["Type"]>;
      readonly token: Token;
    },
  ): Effect<void, never, WorkflowEngine | Error["Context"]>;
};

into

Added in v1.0.0 Source

Signature

declare const into: {
  <Success extends Any, Error extends All>(
    self: DurableDeferred<Success, Error>,
  ): <R>(
    effect: Effect<Success["Type"], Error["Type"], R>,
  ) => Effect<
    Success["Type"],
    Error["Type"],
    WorkflowEngine | WorkflowInstance | R | Success["Context"] | Error["Context"]
  >;
  <Success extends Any, Error extends All, R>(
    effect: Effect<Success["Type"], Error["Type"], R>,
    self: DurableDeferred<Success, Error>,
  ): Effect<
    Success["Type"],
    Error["Type"],
    WorkflowEngine | WorkflowInstance | R | Success["Context"] | Error["Context"]
  >;
};

succeed

Added in v1.0.0 Source

Signature

declare const succeed: {
  <Success extends Any, Error extends All>(options: {
    readonly token: Token;
    readonly value: Success["Type"];
  }): (
    self: DurableDeferred<Success, Error>,
  ) => Effect<void, never, WorkflowEngine | Success["Context"]>;
  <Success extends Any, Error extends All>(
    self: DurableDeferred<Success, Error>,
    options: {
      readonly token: Token;
      readonly value: Success["Type"];
    },
  ): Effect<void, never, WorkflowEngine | Success["Context"]>;
};

Constructors

make

Added in v1.0.0 Source

Signature

declare function make<Success extends Any = Void, Error extends All = Never>(
  name: string,
  options?: {
    readonly error?: Error;
    readonly success?: Success;
  },
): DurableDeferred<Success, Error>;

Models

Any interface

Added in v1.0.0 Source

Signature

interface Any {
  readonly [TypeId]: typeof TypeId;
  readonly errorSchema: All;
  readonly exitSchema: ExitFromSelf<any, any, any>;
  readonly name: string;
  readonly successSchema: Any;
}

DurableDeferred interface

Added in v1.0.0 Source

Signature

interface DurableDeferred<
  Success extends Schema.Schema.Any,
  Error extends Schema.Schema.All = typeof Schema.Never,
> {
  readonly [TypeId]: typeof TypeId;
  readonly errorSchema: Error;
  readonly exitSchema: ExitFromSelf<Success, Error, (options?: ErrorOptions) => Defect>;
  readonly name: string;
  readonly successSchema: Success;
  readonly withActivityAttempt: Effect<DurableDeferred<Success, Error>>;
}

Other

Signature

declare const await: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(
  self: DurableDeferred<Success, Error>,
) => Effect.Effect<
  Success["Type"],
  Error["Type"],
  WorkflowEngine | WorkflowInstance | Success["Context"] | Error["Context"]
>;

Racing

raceAll

Added in v1.0.0 Source

Signature

declare function raceAll<
  Effects extends readonly [Effect<any, any, any>, Effect<any, any, any>],
  SI,
  SR,
  EI,
  ER,
>(options: {
  effects: Effects;
  error: any;
  name: string;
  success: any;
}): Effect<
  Effects[number] extends Effect<_A, _E, _R> ? _A : never,
  Effects[number] extends Effect<_A, _E, _R> ? _E : never,
  WorkflowEngine | WorkflowInstance | SR | ER | Effects[number] extends Effect<_A, _R, R>
    ? R
    : never
>;

Symbols

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;

Token

token

Added in v1.0.0 Source

Signature

declare const token: <Success extends Schema.Schema.Any, Error extends Schema.Schema.All>(
  self: DurableDeferred<Success, Error>,
) => Effect.Effect<Token, never, WorkflowInstance>;

Token

Added in v1.0.0 Source

Signature

declare const Token: brand<String, typeof TokenTypeId>;

Token type

Added in v1.0.0 Source

Signature

type Token = Brand.Branded<string, TokenTypeId>;

Signature

declare const tokenFromExecutionId: {
  (options: {
    readonly executionId: string;
    readonly workflow: Workflow.Any;
  }): <Success extends Any, Error extends All>(self: DurableDeferred<Success, Error>) => Token;
  <Success extends Any, Error extends All>(
    self: DurableDeferred<Success, Error>,
    options: {
      readonly executionId: string;
      readonly workflow: Workflow.Any;
    },
  ): Token;
};

Signature

declare const tokenFromPayload: {
  <W extends Any>(options: {
    readonly payload: Schema.Simplify<Schema.Struct.Constructor<W["payloadSchema"]["fields"]>>;
    readonly workflow: W;
  }): <Success extends Any, Error extends All>(
    self: DurableDeferred<Success, Error>,
  ) => Effect<Token>;
  <Success extends Any, Error extends All, W extends Any>(
    self: DurableDeferred<Success, Error>,
    options: {
      readonly payload: Schema.Simplify<Schema.Struct.Constructor<W["payloadSchema"]["fields"]>>;
      readonly workflow: W;
    },
  ): Effect<Token>;
};

TokenParsed

Added in v1.0.0 Source

Signature

declare class TokenParsed extends ReadonlySide<
  {
    readonly deferredName: String;
    readonly executionId: String;
    readonly workflowName: String;
  },
  "Type"
> {
  constructor(
    ...args: [
      props: ReadonlyMakeIn<{
        readonly deferredName: String;
        readonly executionId: String;
        readonly workflowName: String;
      }>,
      options?: MakeOptions,
    ]
  );
  static readonly encode: (input: any, options?: ParseOptions) => any;
  static readonly fromString: (input: any, options?: ParseOptions) => any;
  static readonly FromString: any;
  asToken: Token;
}

TokenTypeId

Added in v1.0.0 Source

Signature

declare const TokenTypeId: unique symbol;

TokenTypeId type

Added in v1.0.0 Source

Signature

type TokenTypeId = typeof TokenTypeId;