@dbos-inc/kysely-datasource 4.26.6-preview → 4.26.7-preview
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +46 -41
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/index.ts +53 -41
- package/package.json +1 -1
- package/tests/datasource.test.ts +93 -0
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAQL,cAAc,EAMf,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAE,MAAM,EAAoB,cAAc,EAAmB,MAAM,QAAQ,CAAC;AACnF,OAAO,EAAQ,UAAU,EAAE,MAAM,IAAI,CAAC;AAGtC,MAAM,WAAW,sBAAsB;IACrC,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAOD,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAqOD,qBAAa,gBAAgB,CAAC,EAAE,CAAE,YAAW,cAAc,CAAC,iBAAiB,CAAC;;IA6C1E,QAAQ,CAAC,IAAI,EAAE,MAAM;IAhCvB,IAAI,MAAM,IAAI,MAAM,CAAC,EAAE,CAAC,CAEvB;WAEY,oBAAoB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAE,MAAe;WAWxE,sBAAsB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAE,MAAe;gBAiB5E,IAAI,EAAE,MAAM,EACrB,kBAAkB,EAAE,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,EAC5C,UAAU,GAAE,MAAe;IAMvB,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,iBAAiB;IAI1E,mBAAmB,CAAC,IAAI,EAAE,IAAI,SAAS,OAAO,EAAE,EAAE,MAAM,EACtD,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC,EACpD,MAAM,CAAC,EAAE,iBAAiB,GAAG,YAAY,GACxC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC;IAIjD,WAAW,CAAC,MAAM,CAAC,EAAE,iBAAiB,kDAI1B,MAAM,eACD,WAAW,cACZ,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,MAAM,CAAC,CAAC,oCAAxC,IAAI,WAAW,IAAI,KAAK,QAAQ,MAAM,CAAC;CAevF"}
|
package/dist/index.js
CHANGED
|
@@ -87,45 +87,43 @@ class KyselyTransactionHandler {
|
|
|
87
87
|
return error !== null ? { error } : { output };
|
|
88
88
|
}
|
|
89
89
|
async #recordError(workflowID, stepID, error) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
90
|
+
const inserted = await this.#kyselyDB
|
|
91
|
+
.insertInto('dbos.transaction_completion')
|
|
92
|
+
.values({
|
|
93
|
+
workflow_id: workflowID,
|
|
94
|
+
function_num: stepID,
|
|
95
|
+
error,
|
|
96
|
+
output: null,
|
|
97
|
+
})
|
|
98
|
+
.onConflict((oc) => oc.columns(['workflow_id', 'function_num']).doNothing())
|
|
99
|
+
.returning('workflow_id')
|
|
100
|
+
.executeTakeFirst();
|
|
101
|
+
if (inserted === undefined) {
|
|
102
|
+
throw new datasource_1.DBOSStepAlreadyRecordedError(workflowID, stepID);
|
|
100
103
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
}
|
|
104
|
+
}
|
|
105
|
+
// A duplicate execution won the race, so its recorded outcome is the durable one.
|
|
106
|
+
async #replayConflictingStep(workflowID, stepID) {
|
|
107
|
+
const recorded = await this.#checkExecution(workflowID, stepID);
|
|
108
|
+
if (recorded === undefined) {
|
|
109
|
+
throw new datasource_1.DBOSError(`Step ${stepID} of workflow ${workflowID} conflicted with a concurrent execution, but no recorded outcome was found`);
|
|
108
110
|
}
|
|
111
|
+
return (0, datasource_1.replayRecordedStep)(recorded);
|
|
109
112
|
}
|
|
110
113
|
static async #recordOutput(client, workflowID, stepID, output) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
throw new dbos_sdk_1.DBOSWorkflowConflictError(workflowID);
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
throw error;
|
|
128
|
-
}
|
|
114
|
+
const inserted = await client
|
|
115
|
+
.insertInto('dbos.transaction_completion')
|
|
116
|
+
.values({
|
|
117
|
+
workflow_id: workflowID,
|
|
118
|
+
function_num: stepID,
|
|
119
|
+
output,
|
|
120
|
+
error: null,
|
|
121
|
+
})
|
|
122
|
+
.onConflict((oc) => oc.columns(['workflow_id', 'function_num']).doNothing())
|
|
123
|
+
.returning('workflow_id')
|
|
124
|
+
.executeTakeFirst();
|
|
125
|
+
if (inserted === undefined) {
|
|
126
|
+
throw new datasource_1.DBOSStepAlreadyRecordedError(workflowID, stepID);
|
|
129
127
|
}
|
|
130
128
|
}
|
|
131
129
|
async invokeTransactionFunction(config, target, func, ...args) {
|
|
@@ -144,11 +142,7 @@ class KyselyTransactionHandler {
|
|
|
144
142
|
// Check to see if this tx has already been executed
|
|
145
143
|
const previousResult = saveResults ? await this.#checkExecution(workflowID, stepID) : undefined;
|
|
146
144
|
if (previousResult) {
|
|
147
|
-
|
|
148
|
-
if ('error' in previousResult) {
|
|
149
|
-
throw superjson_1.SuperJSON.parse(previousResult.error);
|
|
150
|
-
}
|
|
151
|
-
return (previousResult.output ? superjson_1.SuperJSON.parse(previousResult.output) : null);
|
|
145
|
+
return (0, datasource_1.replayRecordedStep)(previousResult);
|
|
152
146
|
}
|
|
153
147
|
try {
|
|
154
148
|
let trx = this.#kyselyDB.transaction();
|
|
@@ -172,6 +166,9 @@ class KyselyTransactionHandler {
|
|
|
172
166
|
return result;
|
|
173
167
|
}
|
|
174
168
|
catch (error) {
|
|
169
|
+
if (saveResults && error instanceof datasource_1.DBOSStepAlreadyRecordedError) {
|
|
170
|
+
return await this.#replayConflictingStep(workflowID, stepID);
|
|
171
|
+
}
|
|
175
172
|
if ((0, datasource_1.isPGRetriableTransactionError)(error)) {
|
|
176
173
|
dbos_sdk_1.DBOS.span?.addEvent('TXN SERIALIZATION FAILURE', { retryWaitMillis: retryWaitMS }, performance.now());
|
|
177
174
|
await new Promise((resolve) => setTimeout(resolve, retryWaitMS));
|
|
@@ -181,7 +178,15 @@ class KyselyTransactionHandler {
|
|
|
181
178
|
else {
|
|
182
179
|
if (saveResults) {
|
|
183
180
|
const message = superjson_1.SuperJSON.stringify(error);
|
|
184
|
-
|
|
181
|
+
try {
|
|
182
|
+
await this.#recordError(workflowID, stepID, message);
|
|
183
|
+
}
|
|
184
|
+
catch (recordError) {
|
|
185
|
+
if (recordError instanceof datasource_1.DBOSStepAlreadyRecordedError) {
|
|
186
|
+
return await this.#replayConflictingStep(workflowID, stepID);
|
|
187
|
+
}
|
|
188
|
+
throw recordError;
|
|
189
|
+
}
|
|
185
190
|
}
|
|
186
191
|
throw error;
|
|
187
192
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;AAAA,uDAAuD;AACvD,4BAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|