durable-execution-storage-drizzle
Version:
Drizzle ORM storage implementation for durable-execution
163 lines • 4.59 kB
JavaScript
// src/common.ts
function storageObjectToInsertValue(obj) {
return {
rootTaskId: obj.rootTask?.taskId,
rootExecutionId: obj.rootTask?.executionId,
parentTaskId: obj.parentTask?.taskId,
parentExecutionId: obj.parentTask?.executionId,
isFinalizeTask: obj.parentTask?.isFinalizeTask,
taskId: obj.taskId,
executionId: obj.executionId,
retryOptions: obj.retryOptions,
timeoutMs: obj.timeoutMs,
sleepMsBeforeRun: obj.sleepMsBeforeRun,
runInput: obj.runInput,
runOutput: obj.runOutput,
output: obj.output,
childrenTasksCompletedCount: obj.childrenTasksCompletedCount,
childrenTasks: obj.childrenTasks,
childrenTasksErrors: obj.childrenTasksErrors,
finalizeTask: obj.finalizeTask,
finalizeTaskError: obj.finalizeTaskError,
error: obj.error,
status: obj.status,
isClosed: obj.isClosed,
needsPromiseCancellation: obj.needsPromiseCancellation,
retryAttempts: obj.retryAttempts,
startAt: obj.startAt,
startedAt: obj.startedAt,
finishedAt: obj.finishedAt,
expiresAt: obj.expiresAt,
createdAt: obj.createdAt,
updatedAt: obj.updatedAt
};
}
function selectValueToStorageObject(row) {
const obj = {
taskId: row.taskId,
executionId: row.executionId,
retryOptions: row.retryOptions,
timeoutMs: row.timeoutMs,
sleepMsBeforeRun: row.sleepMsBeforeRun,
runInput: row.runInput,
childrenTasksCompletedCount: row.childrenTasksCompletedCount,
status: row.status,
isClosed: row.isClosed,
needsPromiseCancellation: row.needsPromiseCancellation,
retryAttempts: row.retryAttempts,
startAt: row.startAt,
createdAt: row.createdAt,
updatedAt: row.updatedAt
};
if (row.rootTaskId && row.rootExecutionId) {
obj.rootTask = {
taskId: row.rootTaskId,
executionId: row.rootExecutionId
};
}
if (row.parentTaskId && row.parentExecutionId) {
obj.parentTask = {
taskId: row.parentTaskId,
executionId: row.parentExecutionId,
isFinalizeTask: row.isFinalizeTask ?? false
};
}
if (row.runOutput != null) {
obj.runOutput = row.runOutput;
}
if (row.output != null) {
obj.output = row.output;
}
if (row.childrenTasks) {
obj.childrenTasks = row.childrenTasks;
}
if (row.childrenTasksErrors) {
obj.childrenTasksErrors = row.childrenTasksErrors;
}
if (row.finalizeTask) {
obj.finalizeTask = row.finalizeTask;
}
if (row.finalizeTaskError) {
obj.finalizeTaskError = row.finalizeTaskError;
}
if (row.error) {
obj.error = row.error;
}
if (row.startedAt) {
obj.startedAt = row.startedAt;
}
if (row.finishedAt) {
obj.finishedAt = row.finishedAt;
}
if (row.expiresAt) {
obj.expiresAt = row.expiresAt;
}
return obj;
}
function storageUpdateToUpdateValue(update) {
const row = {};
if (update.runOutput !== void 0) {
row.runOutput = update.runOutput;
}
if (update.output !== void 0) {
row.output = update.output;
}
if (update.childrenTasksCompletedCount !== void 0) {
row.childrenTasksCompletedCount = update.childrenTasksCompletedCount;
}
if (update.childrenTasks !== void 0) {
row.childrenTasks = update.childrenTasks;
}
if (update.childrenTasksErrors !== void 0) {
row.childrenTasksErrors = update.childrenTasksErrors;
}
if (update.finalizeTask !== void 0) {
row.finalizeTask = update.finalizeTask;
}
if (update.finalizeTaskError !== void 0) {
row.finalizeTaskError = update.finalizeTaskError;
}
if (update.error !== void 0) {
row.error = update.error;
}
if (update.unsetError) {
row.error = null;
}
if (update.status !== void 0) {
row.status = update.status;
}
if (update.isClosed !== void 0) {
row.isClosed = update.isClosed;
}
if (update.needsPromiseCancellation !== void 0) {
row.needsPromiseCancellation = update.needsPromiseCancellation;
}
if (update.retryAttempts !== void 0) {
row.retryAttempts = update.retryAttempts;
}
if (update.startAt !== void 0) {
row.startAt = update.startAt;
}
if (update.startedAt !== void 0) {
row.startedAt = update.startedAt;
}
if (update.finishedAt !== void 0) {
row.finishedAt = update.finishedAt;
}
if (update.expiresAt !== void 0) {
row.expiresAt = update.expiresAt;
}
if (update.unsetExpiresAt) {
row.expiresAt = null;
}
if (update.updatedAt !== void 0) {
row.updatedAt = update.updatedAt;
}
return row;
}
export {
selectValueToStorageObject,
storageObjectToInsertValue,
storageUpdateToUpdateValue
};
//# sourceMappingURL=common.js.map