Skip to content

Activity

9 exports Added in v1.0.0 Source

Attempts

Signature

declare class CurrentAttempt extends any {
  constructor();
}

Constructors

make

Added in v1.0.0 Source

Signature

declare function make<R, Success extends Any = Void, Error extends All = Never>(options: {
  readonly error?: Error;
  readonly execute: Effect<Success["Type"], Error["Type"], R>;
  readonly interruptRetryPolicy?: Schedule<any, Cause<unknown>, never, never>;
  readonly name: string;
  readonly success?: Success;
}): Activity<Success, Error, Exclude<R, WorkflowEngine | WorkflowInstance | Scope>>;

Error Handling

retry

Added in v1.0.0 Source

Signature

declare const retry: {
  <E, O extends NoExcessProperties<Omit<Options<E>, "schedule">, O>>(
    options: O,
  ): <A, R>(
    self: Effect<A, E, R>,
  ) => Effect<
    A,
    O extends {
      schedule: Schedule<infer _O, infer _I, infer _E1, infer _R>;
    }
      ? E
      : O extends {
            times: number;
          }
        ? E
        : O extends {
              until: Predicate.Refinement<E, infer E2>;
            }
          ? E2
          : O extends {
                while: Predicate.Refinement<E, infer E2>;
              }
            ? Exclude<E, E2>
            : E | O extends {
                  schedule: Schedule<infer _O, infer _I, infer E, infer _R>;
                }
              ? E
              : never | O extends {
                    while: (...args: Array<any>) => Effect<infer _A, infer E, infer _R>;
                  }
                ? E
                : never | O extends {
                      until: (...args: Array<any>) => Effect<infer _A, infer E, infer _R>;
                    }
                  ? E
                  : never,
    R | O extends {
      schedule: Schedule<infer _O, infer _I, infer _E1, infer R>;
    }
      ? R
      : never | O extends {
            while: (...args: Array<any>) => Effect<infer _A, infer _E, infer R>;
          }
        ? R
        : never | O extends {
              until: (...args: Array<any>) => Effect<infer _A, infer _E, infer R>;
            }
          ? R
          : never
  >;
  <A, E, R, O extends NoExcessProperties<Omit<Options<E>, "schedule">, O>>(
    self: Effect<A, E, R>,
    options: O,
  ): Effect<
    A,
    O extends {
      schedule: Schedule<infer _O, infer _I, infer _E1, infer _R>;
    }
      ? E
      : O extends {
            times: number;
          }
        ? E
        : O extends {
              until: Predicate.Refinement<E, infer E2>;
            }
          ? E2
          : O extends {
                while: Predicate.Refinement<E, infer E2>;
              }
            ? Exclude<E, E2>
            : E | O extends {
                  schedule: Schedule<infer _O, infer _I, infer E, infer _R>;
                }
              ? E
              : never | O extends {
                    while: (...args: Array<any>) => Effect<infer _A, infer E, infer _R>;
                  }
                ? E
                : never | O extends {
                      until: (...args: Array<any>) => Effect<infer _A, infer E, infer _R>;
                    }
                  ? E
                  : never,
    R | O extends {
      schedule: Schedule<infer _O, infer _I, infer _E1, infer R>;
    }
      ? R
      : never | O extends {
            while: (...args: Array<any>) => Effect<infer _A, infer _E, infer R>;
          }
        ? R
        : never | O extends {
              until: (...args: Array<any>) => Effect<infer _A, infer _E, infer R>;
            }
          ? R
          : never
  >;
};

Idempotency

Signature

declare const idempotencyKey: (
  name: string,
  options?: {
    readonly includeAttempt?: boolean;
  },
) => Effect.Effect<string, never, WorkflowInstance>;

Models

Activity interface

Added in v1.0.0 Source

Signature

interface Activity<
  Success extends Schema.Schema.Any = typeof Schema.Void,
  Error extends Schema.Schema.All = typeof Schema.Never,
  R = never,
> extends Effect<
  Success["Type"],
  Error["Type"],
  Success["Context"] | Error["Context"] | R | WorkflowEngine | WorkflowInstance
> {
  readonly [TypeId]: typeof TypeId;
  readonly errorSchema: Error;
  readonly execute: Effect<
    Success["Type"],
    Error["Type"],
    R | WorkflowEngine | WorkflowInstance | Success["Context"] | Error["Context"] | Scope
  >;
  readonly executeEncoded: Effect<
    Success["Encoded"],
    Error["Encoded"],
    R | WorkflowEngine | WorkflowInstance | Success["Context"] | Error["Context"] | Scope
  >;
  readonly exitSchema: any;
  readonly name: string;
  readonly successSchema: Success;
}

Any interface

Added in v1.0.0 Source

Signature

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

Racing

raceAll

Added in v1.0.0 Source

Signature

declare function raceAll<Activities extends readonly [Any, Any]>(
  name: string,
  activities: Activities,
): Effect<
  Activities[number] extends Activity<_A, _E, _R> ? _A["Type"] : never,
  Activities[number] extends Activity<_A, _E, _R> ? _E["Type"] : never,
  WorkflowEngine | WorkflowInstance | Activities[number] extends Activity<Success, Error, R>
    ? R | Success["Context"] | Error["Context"]
    : 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;