durable-execution-storage-drizzle
Version:
Drizzle ORM storage implementation for durable-execution
572 lines • 20.2 kB
TypeScript
import { type TablesRelationalConfig } from 'drizzle-orm';
import { type BaseSQLiteDatabase } from 'drizzle-orm/sqlite-core';
import { type DurableChildTaskExecution, type DurableChildTaskExecutionErrorStorageObject, type DurableExecutionErrorStorageObject, type DurableStorage, type DurableTaskExecutionStatusStorageObject, type DurableTaskRetryOptions } from 'durable-execution';
/**
* Create a sqlite table for durable task executions.
*
* @param tableName - The name of the table.
* @returns The sqlite table.
*/
export declare function createDurableTaskExecutionsSQLiteTable(tableName?: string): import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
name: string;
schema: undefined;
columns: {
id: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "id";
tableName: string;
dataType: "number";
columnType: "SQLiteInteger";
data: number;
driverParam: number;
notNull: true;
hasDefault: true;
isPrimaryKey: true;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
rootTaskId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "root_task_id";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
rootExecutionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "root_execution_id";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
parentTaskId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "parent_task_id";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
parentExecutionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "parent_execution_id";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
isFinalizeTask: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "is_finalize_task";
tableName: string;
dataType: "boolean";
columnType: "SQLiteBoolean";
data: boolean;
driverParam: number;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
taskId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "task_id";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
executionId: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "execution_id";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
retryOptions: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "retry_options";
tableName: string;
dataType: "json";
columnType: "SQLiteTextJson";
data: DurableTaskRetryOptions;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
$type: DurableTaskRetryOptions;
}>;
timeoutMs: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "timeout_ms";
tableName: string;
dataType: "number";
columnType: "SQLiteInteger";
data: number;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
sleepMsBeforeRun: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "sleep_ms_before_run";
tableName: string;
dataType: "number";
columnType: "SQLiteInteger";
data: number;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
runInput: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "run_input";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
runOutput: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "run_output";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
output: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "output";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: string;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
}>;
childrenTasksCompletedCount: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "children_tasks_completed_count";
tableName: string;
dataType: "number";
columnType: "SQLiteInteger";
data: number;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
childrenTasks: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "children_tasks";
tableName: string;
dataType: "json";
columnType: "SQLiteTextJson";
data: DurableChildTaskExecution[];
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
$type: DurableChildTaskExecution[];
}>;
childrenTasksErrors: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "children_tasks_errors";
tableName: string;
dataType: "json";
columnType: "SQLiteTextJson";
data: DurableChildTaskExecutionErrorStorageObject[];
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
$type: DurableChildTaskExecutionErrorStorageObject[];
}>;
finalizeTask: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "finalize_task";
tableName: string;
dataType: "json";
columnType: "SQLiteTextJson";
data: DurableChildTaskExecution;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
$type: DurableChildTaskExecution;
}>;
finalizeTaskError: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "finalize_task_error";
tableName: string;
dataType: "json";
columnType: "SQLiteTextJson";
data: DurableExecutionErrorStorageObject;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
$type: DurableExecutionErrorStorageObject;
}>;
error: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "error";
tableName: string;
dataType: "json";
columnType: "SQLiteTextJson";
data: DurableExecutionErrorStorageObject;
driverParam: string;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
$type: DurableExecutionErrorStorageObject;
}>;
status: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "status";
tableName: string;
dataType: "string";
columnType: "SQLiteText";
data: DurableTaskExecutionStatusStorageObject;
driverParam: string;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: [string, ...string[]];
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {
length: number | undefined;
$type: DurableTaskExecutionStatusStorageObject;
}>;
isClosed: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "is_closed";
tableName: string;
dataType: "boolean";
columnType: "SQLiteBoolean";
data: boolean;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
needsPromiseCancellation: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "needs_promise_cancellation";
tableName: string;
dataType: "boolean";
columnType: "SQLiteBoolean";
data: boolean;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
retryAttempts: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "retry_attempts";
tableName: string;
dataType: "number";
columnType: "SQLiteInteger";
data: number;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
startAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "start_at";
tableName: string;
dataType: "date";
columnType: "SQLiteTimestamp";
data: Date;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
startedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "started_at";
tableName: string;
dataType: "date";
columnType: "SQLiteTimestamp";
data: Date;
driverParam: number;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
finishedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "finished_at";
tableName: string;
dataType: "date";
columnType: "SQLiteTimestamp";
data: Date;
driverParam: number;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
expiresAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "expires_at";
tableName: string;
dataType: "date";
columnType: "SQLiteTimestamp";
data: Date;
driverParam: number;
notNull: false;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
createdAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "created_at";
tableName: string;
dataType: "date";
columnType: "SQLiteTimestamp";
data: Date;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
updatedAt: import("drizzle-orm/sqlite-core").SQLiteColumn<{
name: "updated_at";
tableName: string;
dataType: "date";
columnType: "SQLiteTimestamp";
data: Date;
driverParam: number;
notNull: true;
hasDefault: false;
isPrimaryKey: false;
isAutoincrement: false;
hasRuntimeDefault: false;
enumValues: undefined;
baseColumn: never;
identity: undefined;
generated: undefined;
}, {}, {}>;
};
dialect: "sqlite";
}>;
/**
* The type of the sqlite table for durable task executions.
*/
export type DurableTaskExecutionsSQLiteTable = ReturnType<typeof createDurableTaskExecutionsSQLiteTable>;
/**
* Create a sqlite durable storage.
*
* @param db - The sqlite database.
* @param table - The sqlite task executions table.
* @returns The sqlite durable storage.
*/
export declare function createSQLiteDurableStorage<TRunResult, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>(db: BaseSQLiteDatabase<'async', TRunResult, TFullSchema, TSchema>, table: DurableTaskExecutionsSQLiteTable): DurableStorage;
//# sourceMappingURL=sqlite.d.ts.map