UNPKG

durable-execution-storage-drizzle

Version:

Drizzle ORM storage implementation for durable-execution

553 lines 19.8 kB
import { type TablesRelationalConfig } from 'drizzle-orm'; import { type MySqlDatabase, type MySqlQueryResultHKT, type PreparedQueryHKTBase } from 'drizzle-orm/mysql-core'; import type { DurableChildTaskExecution, DurableChildTaskExecutionErrorStorageObject, DurableExecutionErrorStorageObject, DurableStorage, DurableTaskExecutionStatusStorageObject, DurableTaskRetryOptions } from 'durable-execution'; /** * Create a mysql table for durable task executions. * * @param tableName - The name of the table. * @returns The mysql table. */ export declare function createDurableTaskExecutionsMySQLTable(tableName?: string): import("drizzle-orm/mysql-core").MySqlTableWithColumns<{ name: string; schema: undefined; columns: { id: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "id"; tableName: string; dataType: "number"; columnType: "MySqlBigInt53"; data: number; driverParam: string | number; notNull: true; hasDefault: true; isPrimaryKey: true; isAutoincrement: true; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; rootTaskId: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "root_task_id"; tableName: string; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; rootExecutionId: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "root_execution_id"; tableName: string; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; parentTaskId: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "parent_task_id"; tableName: string; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; parentExecutionId: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "parent_execution_id"; tableName: string; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; isFinalizeTask: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "is_finalize_task"; tableName: string; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; taskId: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "task_id"; tableName: string; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; executionId: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "execution_id"; tableName: string; dataType: "string"; columnType: "MySqlVarChar"; data: string; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; retryOptions: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "retry_options"; tableName: string; dataType: "json"; columnType: "MySqlJson"; 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/mysql-core").MySqlColumn<{ name: "timeout_ms"; tableName: string; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; sleepMsBeforeRun: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "sleep_ms_before_run"; tableName: string; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; runInput: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "run_input"; tableName: string; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; runOutput: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "run_output"; tableName: string; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; output: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "output"; tableName: string; dataType: "string"; columnType: "MySqlText"; data: string; driverParam: string; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; childrenTasksCompletedCount: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "children_tasks_completed_count"; tableName: string; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; childrenTasks: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "children_tasks"; tableName: string; dataType: "json"; columnType: "MySqlJson"; 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/mysql-core").MySqlColumn<{ name: "children_tasks_errors"; tableName: string; dataType: "json"; columnType: "MySqlJson"; 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/mysql-core").MySqlColumn<{ name: "finalize_task"; tableName: string; dataType: "json"; columnType: "MySqlJson"; 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/mysql-core").MySqlColumn<{ name: "finalize_task_error"; tableName: string; dataType: "json"; columnType: "MySqlJson"; 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/mysql-core").MySqlColumn<{ name: "error"; tableName: string; dataType: "json"; columnType: "MySqlJson"; 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/mysql-core").MySqlColumn<{ name: "status"; tableName: string; dataType: "string"; columnType: "MySqlVarChar"; data: DurableTaskExecutionStatusStorageObject; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: [string, ...string[]]; baseColumn: never; identity: undefined; generated: undefined; }, {}, { $type: DurableTaskExecutionStatusStorageObject; }>; isClosed: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "is_closed"; tableName: string; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; needsPromiseCancellation: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "needs_promise_cancellation"; tableName: string; dataType: "boolean"; columnType: "MySqlBoolean"; data: boolean; driverParam: number | boolean; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; retryAttempts: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "retry_attempts"; tableName: string; dataType: "number"; columnType: "MySqlInt"; data: number; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; startAt: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "start_at"; tableName: string; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; startedAt: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "started_at"; tableName: string; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; finishedAt: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "finished_at"; tableName: string; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; expiresAt: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "expires_at"; tableName: string; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: false; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; createdAt: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "created_at"; tableName: string; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; updatedAt: import("drizzle-orm/mysql-core").MySqlColumn<{ name: "updated_at"; tableName: string; dataType: "date"; columnType: "MySqlTimestamp"; data: Date; driverParam: string | number; notNull: true; hasDefault: false; isPrimaryKey: false; isAutoincrement: false; hasRuntimeDefault: false; enumValues: undefined; baseColumn: never; identity: undefined; generated: undefined; }, {}, {}>; }; dialect: "mysql"; }>; /** * The type of the mysql table for durable task executions. */ export type DurableTaskExecutionsMySQLTable = ReturnType<typeof createDurableTaskExecutionsMySQLTable>; /** * Create a mysql durable storage. * * @param db - The mysql database. * @param table - The mysql task executions table. * @returns The mysql durable storage. */ export declare function createMySQLDurableStorage<TQueryResult extends MySqlQueryResultHKT, TPreparedQueryHKT extends PreparedQueryHKTBase, TFullSchema extends Record<string, unknown>, TSchema extends TablesRelationalConfig>(db: MySqlDatabase<TQueryResult, TPreparedQueryHKT, TFullSchema, TSchema>, table: DurableTaskExecutionsMySQLTable): DurableStorage; //# sourceMappingURL=mysql.d.ts.map