EdgeAIG's picture
download
raw
13.3 kB
import type { NonEmptyReadonlyArray } from "../../Array.ts";
import type * as Brand from "../../Brand.ts";
import * as Cause from "../../Cause.ts";
import * as Effect from "../../Effect.ts";
import * as Exit from "../../Exit.ts";
import * as Schema from "../../Schema.ts";
import * as Workflow from "./Workflow.ts";
import type { WorkflowEngine, WorkflowInstance } from "./WorkflowEngine.ts";
declare const TypeId = "~effect/workflow/DurableDeferred";
/**
* Named durable deferred value whose completion is persisted by the workflow
* engine and encoded with success and error schemas.
*
* @category models
* @since 4.0.0
*/
export interface DurableDeferred<Success extends Schema.Top, Error extends Schema.Top = Schema.Never> {
readonly [TypeId]: typeof TypeId;
readonly name: string;
readonly successSchema: Success;
readonly errorSchema: Error;
readonly exitSchema: Schema.Exit<Schema.Top, Schema.Top, Schema.Top>;
readonly withActivityAttempt: Effect.Effect<DurableDeferred<Success, Error>>;
}
/**
* Type-erased durable deferred shape for APIs that only need the deferred
* identity and name.
*
* @category models
* @since 4.0.0
*/
export interface Any {
readonly [TypeId]: typeof TypeId;
readonly name: string;
}
/**
* Type-erased durable deferred shape that also exposes success, error, and
* exit schemas.
*
* @category models
* @since 4.0.0
*/
export interface AnyWithProps {
readonly [TypeId]: typeof TypeId;
readonly name: string;
readonly successSchema: Schema.Top;
readonly errorSchema: Schema.Top;
readonly exitSchema: Schema.Exit<any, any, any>;
}
/**
* Creates a named durable deferred with optional success and error schemas for
* persisted completion.
*
* @category constructors
* @since 4.0.0
*/
export declare const make: <Success extends Schema.Top = Schema.Void, Error extends Schema.Top = Schema.Never>(name: string, options?: {
readonly success?: Success | undefined;
readonly error?: Error | undefined;
}) => DurableDeferred<Success, Error>;
declare const await_: <Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>) => Effect.Effect<Success["Type"], Error["Type"], WorkflowEngine | WorkflowInstance | Success["DecodingServices"] | Error["DecodingServices"]>;
export {
/**
* Waits for the durable deferred, suspending the current workflow when no
* persisted completion is available.
*
* @category combinators
* @since 4.0.0
*/
await_ as await };
/**
* Runs an effect and records its exit into the durable deferred, resuming
* workflows that are waiting on that deferred.
*
* @category combinators
* @since 4.0.0
*/
export declare const into: {
/**
* Runs an effect and records its exit into the durable deferred, resuming
* workflows that are waiting on that deferred.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>): <R>(effect: Effect.Effect<Success["Type"], Error["Type"], R>) => Effect.Effect<Success["Type"], Error["Type"], R | WorkflowEngine | WorkflowInstance | Success["DecodingServices"] | Error["DecodingServices"]>;
/**
* Runs an effect and records its exit into the durable deferred, resuming
* workflows that are waiting on that deferred.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top, R>(effect: Effect.Effect<Success["Type"], Error["Type"], R>, self: DurableDeferred<Success, Error>): Effect.Effect<Success["Type"], Error["Type"], R | WorkflowEngine | WorkflowInstance | Success["DecodingServices"] | Error["DecodingServices"]>;
};
/**
* Runs effects as a durable race, returning a previously persisted result when
* present or completing a named deferred with the first result.
*
* @category racing
* @since 4.0.0
*/
export declare const raceAll: <const Effects extends NonEmptyReadonlyArray<Effect.Effect<any, any, any>>, Success extends Schema.Schema<Effect.Success<Effects[number]>>, Error extends Schema.Schema<Effect.Error<Effects[number]>>>(options: {
name: string;
success: Success;
error: Error;
effects: Effects;
}) => Effect.Effect<Effect.Success<Effects[number]>, Effect.Error<Effects[number]>, Effect.Services<Effects[number]> | Success["DecodingServices"] | Success["EncodingServices"] | Error["DecodingServices"] | Error["EncodingServices"] | WorkflowEngine | WorkflowInstance>;
/**
* Runtime brand identifier for durable deferred tokens.
*
* @category type IDs
* @since 4.0.0
*/
export declare const TokenTypeId = "~effect/workflow/DurableDeferred/Token";
/**
* Type-level brand identifier for `Token` values.
*
* @category type IDs
* @since 4.0.0
*/
export type TokenTypeId = typeof TokenTypeId;
/**
* Branded string token identifying a durable deferred for a workflow
* execution.
*
* @category token
* @since 4.0.0
*/
export type Token = Brand.Branded<string, TokenTypeId>;
/**
* Schema for branded durable deferred tokens.
*
* @category token
* @since 4.0.0
*/
export declare const Token: Schema.brand<Schema.String, TokenTypeId>;
declare const TokenParsed_base: Schema.Class<TokenParsed, Schema.Struct<{
readonly workflowName: Schema.String;
readonly executionId: Schema.String;
readonly deferredName: Schema.String;
}>, {}>;
/**
* Schema for a decoded durable deferred token containing the workflow
* name, execution ID, and deferred name.
*
* @category token
* @since 4.0.0
*/
export declare class TokenParsed extends TokenParsed_base {
/**
* Encodes the parsed workflow, execution, and deferred names back into a token.
*
* @since 4.0.0
*/
get asToken(): Token;
/**
* Schema for decoding and encoding durable deferred tokens as strings.
*
* @since 4.0.0
*/
static readonly FromString: Schema.decodeTo<typeof TokenParsed, Schema.decodeTo<Schema.fromJsonString<Schema.Tuple<readonly [Schema.String, Schema.String, Schema.String]>>, Schema.String, never, never>, never, never>;
/**
* Decodes a durable deferred token string into its parsed components.
*
* @since 4.0.0
*/
static readonly fromString: (input: string, options?: import("../../SchemaAST.ts").ParseOptions) => TokenParsed;
/**
* Encodes parsed durable deferred token components into a token string.
*
* @since 4.0.0
*/
static readonly encode: (input: TokenParsed, options?: import("../../SchemaAST.ts").ParseOptions) => string;
}
/**
* Creates a token for a durable deferred using the current workflow instance's
* workflow name and execution ID.
*
* @category token
* @since 4.0.0
*/
export declare const token: <Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>) => Effect.Effect<Token, never, WorkflowInstance>;
/**
* Creates a durable deferred token from an explicit workflow, execution ID,
* and deferred name.
*
* @category token
* @since 4.0.0
*/
export declare const tokenFromExecutionId: {
/**
* Creates a durable deferred token from an explicit workflow, execution ID,
* and deferred name.
*
* @category token
* @since 4.0.0
*/
(options: {
readonly workflow: Workflow.Any;
readonly executionId: string;
}): <Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>) => Token;
/**
* Creates a durable deferred token from an explicit workflow, execution ID,
* and deferred name.
*
* @category token
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>, options: {
readonly workflow: Workflow.Any;
readonly executionId: string;
}): Token;
};
/**
* Creates a durable deferred token by deriving the workflow execution ID from
* the supplied workflow payload.
*
* @category token
* @since 4.0.0
*/
export declare const tokenFromPayload: {
/**
* Creates a durable deferred token by deriving the workflow execution ID from
* the supplied workflow payload.
*
* @category token
* @since 4.0.0
*/
<W extends Workflow.Any>(options: {
readonly workflow: W;
readonly payload: Workflow.PayloadSchema<W>["~type.make.in"];
}): <Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>) => Effect.Effect<Token>;
/**
* Creates a durable deferred token by deriving the workflow execution ID from
* the supplied workflow payload.
*
* @category token
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top, W extends Workflow.Any>(self: DurableDeferred<Success, Error>, options: {
readonly workflow: W;
readonly payload: Workflow.PayloadSchema<W>["~type.make.in"];
}): Effect.Effect<Token>;
};
/**
* Completes the durable deferred identified by a token with the supplied exit,
* encoding the result through the deferred schemas.
*
* @category combinators
* @since 4.0.0
*/
export declare const done: {
/**
* Completes the durable deferred identified by a token with the supplied exit,
* encoding the result through the deferred schemas.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(options: {
readonly token: Token;
readonly exit: Exit.Exit<Success["Type"], Error["Type"]>;
}): (self: DurableDeferred<Success, Error>) => Effect.Effect<void, never, WorkflowEngine | Success["EncodingServices"] | Error["EncodingServices"]>;
/**
* Completes the durable deferred identified by a token with the supplied exit,
* encoding the result through the deferred schemas.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>, options: {
readonly token: Token;
readonly exit: Exit.Exit<Success["Type"], Error["Type"]>;
}): Effect.Effect<void, never, WorkflowEngine | Success["EncodingServices"] | Error["EncodingServices"]>;
};
/**
* Completes the durable deferred identified by a token with a successful
* value.
*
* @category combinators
* @since 4.0.0
*/
export declare const succeed: {
/**
* Completes the durable deferred identified by a token with a successful
* value.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(options: {
readonly token: Token;
readonly value: Success["Type"];
}): (self: DurableDeferred<Success, Error>) => Effect.Effect<void, never, WorkflowEngine | Success["EncodingServices"]>;
/**
* Completes the durable deferred identified by a token with a successful
* value.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>, options: {
readonly token: Token;
readonly value: Success["Type"];
}): Effect.Effect<void, never, WorkflowEngine | Success["EncodingServices"]>;
};
/**
* Completes the durable deferred identified by a token with a typed failure.
*
* @category combinators
* @since 4.0.0
*/
export declare const fail: {
/**
* Completes the durable deferred identified by a token with a typed failure.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(options: {
readonly token: Token;
readonly error: Error["Type"];
}): (self: DurableDeferred<Success, Error>) => Effect.Effect<void, never, WorkflowEngine | Error["EncodingServices"]>;
/**
* Completes the durable deferred identified by a token with a typed failure.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>, options: {
readonly token: Token;
readonly error: Error["Type"];
}): Effect.Effect<void, never, WorkflowEngine | Error["EncodingServices"]>;
};
/**
* Completes the durable deferred identified by a token with a failure cause.
*
* @category combinators
* @since 4.0.0
*/
export declare const failCause: {
/**
* Completes the durable deferred identified by a token with a failure cause.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(options: {
readonly token: Token;
readonly cause: Cause.Cause<Error["Type"]>;
}): (self: DurableDeferred<Success, Error>) => Effect.Effect<void, never, WorkflowEngine | Error["EncodingServices"]>;
/**
* Completes the durable deferred identified by a token with a failure cause.
*
* @category combinators
* @since 4.0.0
*/
<Success extends Schema.Top, Error extends Schema.Top>(self: DurableDeferred<Success, Error>, options: {
readonly token: Token;
readonly cause: Cause.Cause<Error["Type"]>;
}): Effect.Effect<void, never, WorkflowEngine | Error["EncodingServices"]>;
};
//# sourceMappingURL=DurableDeferred.d.ts.map

Xet Storage Details

Size:
13.3 kB
·
Xet hash:
946f40fa62347f54b51555d2bfdd70436bfe153b36944763b17d44ddfe122c57

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.