@dbos-inc/drizzle-datasource 3.0.6-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/src/drizzle_datasource.d.ts +36 -0
- package/dist/src/drizzle_datasource.d.ts.map +1 -0
- package/dist/src/drizzle_datasource.js +247 -0
- package/dist/src/drizzle_datasource.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +7 -0
- package/dist/src/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/jest.config.js +8 -0
- package/package.json +37 -0
- package/src/drizzle_datasource.ts +332 -0
- package/src/index.ts +1 -0
- package/tests/drizzle.test.ts +187 -0
- package/tests/testutils.ts +30 -0
- package/tsconfig.json +8 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { PoolConfig } from 'pg';
|
|
2
|
+
import { PGIsolationLevel as IsolationLevel, PGTransactionConfig as DrizzleTransactionConfig, DBOSDataSource } from '@dbos-inc/dbos-sdk/datasource';
|
|
3
|
+
import { NodePgDatabase } from 'drizzle-orm/node-postgres';
|
|
4
|
+
export { IsolationLevel, DrizzleTransactionConfig };
|
|
5
|
+
export interface transaction_completion {
|
|
6
|
+
workflow_id: string;
|
|
7
|
+
function_num: number;
|
|
8
|
+
output: string | null;
|
|
9
|
+
error: string | null;
|
|
10
|
+
}
|
|
11
|
+
export declare class DrizzleDataSource implements DBOSDataSource<DrizzleTransactionConfig> {
|
|
12
|
+
#private;
|
|
13
|
+
readonly name: string;
|
|
14
|
+
readonly config: PoolConfig;
|
|
15
|
+
readonly entities: {
|
|
16
|
+
[key: string]: object;
|
|
17
|
+
};
|
|
18
|
+
constructor(name: string, config: PoolConfig, entities?: {
|
|
19
|
+
[key: string]: object;
|
|
20
|
+
});
|
|
21
|
+
static get drizzleClient(): NodePgDatabase<{
|
|
22
|
+
[key: string]: object;
|
|
23
|
+
}>;
|
|
24
|
+
get dataSource(): NodePgDatabase<{
|
|
25
|
+
[key: string]: object;
|
|
26
|
+
}> | undefined;
|
|
27
|
+
initializeInternalSchema(): Promise<void>;
|
|
28
|
+
runTransaction<T>(callback: () => Promise<T>, funcName: string, config?: DrizzleTransactionConfig): Promise<T>;
|
|
29
|
+
registerTransaction<This, Args extends unknown[], Return>(func: (this: This, ...args: Args) => Promise<Return>, name: string, config?: DrizzleTransactionConfig): (this: This, ...args: Args) => Promise<Return>;
|
|
30
|
+
transaction(config?: DrizzleTransactionConfig): <This, Args extends unknown[], Return>(_target: object, propertyKey: string, descriptor: TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>) => TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>;
|
|
31
|
+
/**
|
|
32
|
+
* Create user schema in database (for testing)
|
|
33
|
+
*/
|
|
34
|
+
createSchema(): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=drizzle_datasource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle_datasource.d.ts","sourceRoot":"","sources":["../../src/drizzle_datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,MAAM,IAAI,CAAC;AAEtC,OAAO,EASL,gBAAgB,IAAI,cAAc,EAClC,mBAAmB,IAAI,wBAAwB,EAC/C,cAAc,EAEf,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAW,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAKpE,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,CAAC;AAiBpD,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;AAyMD,qBAAa,iBAAkB,YAAW,cAAc,CAAC,wBAAwB,CAAC;;IAI9E,QAAQ,CAAC,IAAI,EAAE,MAAM;IACrB,QAAQ,CAAC,MAAM,EAAE,UAAU;IAC3B,QAAQ,CAAC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;gBAFnC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,UAAU,EAClB,QAAQ,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAO;IAOnD,MAAM,KAAK,aAAa,IAAI,cAAc,CAAC;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAC,CAOpE;IAED,IAAI,UAAU;;mBAEb;IAEK,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBzC,cAAc,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,wBAAwB;IAIvG,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,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,wBAAwB,GAChC,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,MAAM,CAAC;IAKjD,WAAW,CAAC,MAAM,CAAC,EAAE,wBAAwB,mDAIhC,MAAM,eACF,MAAM,cACP,wBAAwB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,IAAI,KAAK,QAAQ,MAAM,CAAC,CAAC,oCAAxC,IAAI,WAAW,IAAI,KAAK,QAAQ,MAAM,CAAC;IAYtF;;OAEG;IACG,YAAY;CAUnB"}
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DrizzleDataSource = exports.IsolationLevel = void 0;
|
|
4
|
+
const pg_1 = require("pg");
|
|
5
|
+
const dbos_sdk_1 = require("@dbos-inc/dbos-sdk");
|
|
6
|
+
const datasource_1 = require("@dbos-inc/dbos-sdk/datasource");
|
|
7
|
+
Object.defineProperty(exports, "IsolationLevel", { enumerable: true, get: function () { return datasource_1.PGIsolationLevel; } });
|
|
8
|
+
const node_postgres_1 = require("drizzle-orm/node-postgres");
|
|
9
|
+
const api_1 = require("drizzle-kit/api");
|
|
10
|
+
const async_hooks_1 = require("async_hooks");
|
|
11
|
+
const superjson_1 = require("superjson");
|
|
12
|
+
const asyncLocalCtx = new async_hooks_1.AsyncLocalStorage();
|
|
13
|
+
function getCurrentDSContextStore() {
|
|
14
|
+
return asyncLocalCtx.getStore();
|
|
15
|
+
}
|
|
16
|
+
function assertCurrentDSContextStore() {
|
|
17
|
+
const ctx = getCurrentDSContextStore();
|
|
18
|
+
if (!ctx)
|
|
19
|
+
throw new dbos_sdk_1.Error.DBOSInvalidWorkflowTransitionError('Invalid use of TypeOrmDs outside of a `transaction`');
|
|
20
|
+
return ctx;
|
|
21
|
+
}
|
|
22
|
+
class DrizzleDSTH {
|
|
23
|
+
name;
|
|
24
|
+
config;
|
|
25
|
+
entities;
|
|
26
|
+
dsType = 'drizzle';
|
|
27
|
+
dataSource;
|
|
28
|
+
drizzlePool;
|
|
29
|
+
constructor(name, config, entities = {}) {
|
|
30
|
+
this.name = name;
|
|
31
|
+
this.config = config;
|
|
32
|
+
this.entities = entities;
|
|
33
|
+
}
|
|
34
|
+
async initialize() {
|
|
35
|
+
this.drizzlePool = new pg_1.Pool(this.config);
|
|
36
|
+
this.dataSource = (0, node_postgres_1.drizzle)(this.drizzlePool, { schema: this.entities });
|
|
37
|
+
return Promise.resolve();
|
|
38
|
+
}
|
|
39
|
+
async destroy() {
|
|
40
|
+
await this.drizzlePool?.end();
|
|
41
|
+
}
|
|
42
|
+
async #checkExecution(client, workflowID, funcNum) {
|
|
43
|
+
const result = await client.query(`SELECT output
|
|
44
|
+
FROM dbos.transaction_completion
|
|
45
|
+
WHERE workflow_id = $1 AND function_num = $2`, [workflowID, funcNum]);
|
|
46
|
+
if (result.rows.length !== 1) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return { res: superjson_1.SuperJSON.parse(result.rows[0].output) };
|
|
50
|
+
}
|
|
51
|
+
async #recordOutput(client, workflowID, funcNum, output) {
|
|
52
|
+
const serialOutput = superjson_1.SuperJSON.stringify(output);
|
|
53
|
+
await client.query(`INSERT INTO dbos.transaction_completion (
|
|
54
|
+
workflow_id,
|
|
55
|
+
function_num,
|
|
56
|
+
output,
|
|
57
|
+
created_at
|
|
58
|
+
) VALUES ($1, $2, $3, $4)`, [workflowID, funcNum, serialOutput, Date.now()]);
|
|
59
|
+
}
|
|
60
|
+
async #recordError(client, workflowID, funcNum, error) {
|
|
61
|
+
const serialError = superjson_1.SuperJSON.stringify(error);
|
|
62
|
+
await client.query(`INSERT INTO dbos.transaction_completion (
|
|
63
|
+
workflow_id,
|
|
64
|
+
function_num,
|
|
65
|
+
error,
|
|
66
|
+
created_at
|
|
67
|
+
) VALUES ($1, $2, $3, $4)`, [workflowID, funcNum, serialError, Date.now()]);
|
|
68
|
+
}
|
|
69
|
+
/* Invoke a transaction function, called by the framework */
|
|
70
|
+
async invokeTransactionFunction(config, target, func, ...args) {
|
|
71
|
+
let isolationLevel;
|
|
72
|
+
if (config === undefined || config.isolationLevel === undefined) {
|
|
73
|
+
isolationLevel = 'serializable'; // Default isolation level
|
|
74
|
+
}
|
|
75
|
+
else if (config.isolationLevel === datasource_1.PGIsolationLevel.ReadUncommitted) {
|
|
76
|
+
isolationLevel = 'read uncommitted';
|
|
77
|
+
}
|
|
78
|
+
else if (config.isolationLevel === datasource_1.PGIsolationLevel.ReadCommitted) {
|
|
79
|
+
isolationLevel = 'read committed';
|
|
80
|
+
}
|
|
81
|
+
else if (config.isolationLevel === datasource_1.PGIsolationLevel.RepeatableRead) {
|
|
82
|
+
isolationLevel = 'repeatable read';
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
isolationLevel = 'serializable';
|
|
86
|
+
}
|
|
87
|
+
const accessMode = 'read write';
|
|
88
|
+
const readOnly = config?.readOnly ? true : false;
|
|
89
|
+
const wfid = dbos_sdk_1.DBOS.workflowID;
|
|
90
|
+
const funcnum = dbos_sdk_1.DBOS.stepID;
|
|
91
|
+
const funcname = func.name;
|
|
92
|
+
// Retry loop if appropriate
|
|
93
|
+
let retryWaitMillis = 1;
|
|
94
|
+
const backoffFactor = 1.5;
|
|
95
|
+
const maxRetryWaitMs = 2000; // Maximum wait 2 seconds.
|
|
96
|
+
const shouldCheckOutput = false;
|
|
97
|
+
if (this.drizzlePool === undefined) {
|
|
98
|
+
throw new dbos_sdk_1.Error.DBOSInvalidWorkflowTransitionError('Invalid use of Datasource');
|
|
99
|
+
}
|
|
100
|
+
if (this.dataSource === undefined) {
|
|
101
|
+
throw new dbos_sdk_1.Error.DBOSInvalidWorkflowTransitionError('Invalid use of Datasource');
|
|
102
|
+
}
|
|
103
|
+
while (true) {
|
|
104
|
+
let failedForRetriableReasons = false;
|
|
105
|
+
try {
|
|
106
|
+
const result = await this.dataSource.transaction(async (drizzleClient) => {
|
|
107
|
+
if (this.drizzlePool === undefined) {
|
|
108
|
+
throw new dbos_sdk_1.Error.DBOSInvalidWorkflowTransitionError('Invalid use of Datasource');
|
|
109
|
+
}
|
|
110
|
+
if (shouldCheckOutput && !readOnly && wfid) {
|
|
111
|
+
const executionResult = await this.#checkExecution(this.drizzlePool, wfid, funcnum);
|
|
112
|
+
if (executionResult) {
|
|
113
|
+
dbos_sdk_1.DBOS.span?.setAttribute('cached', true);
|
|
114
|
+
return executionResult.res;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const result = await asyncLocalCtx.run({ drizzleClient }, async () => {
|
|
118
|
+
return await func.call(target, ...args);
|
|
119
|
+
});
|
|
120
|
+
// Save result
|
|
121
|
+
try {
|
|
122
|
+
if (!readOnly && wfid) {
|
|
123
|
+
await this.#recordOutput(this.drizzlePool, wfid, funcnum, result);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
catch (e) {
|
|
127
|
+
const error = e;
|
|
128
|
+
await this.#recordError(this.drizzlePool, wfid, funcnum, error);
|
|
129
|
+
// Aside from a connectivity error, two kinds of error are anticipated here:
|
|
130
|
+
// 1. The transaction is marked failed, but the user code did not throw.
|
|
131
|
+
// Bad on them. We will throw an error (this will get recorded) and not retry.
|
|
132
|
+
// 2. There was a key conflict in the statement, and we need to use the fetched output
|
|
133
|
+
if ((0, datasource_1.isPGFailedSqlTransactionError)(error)) {
|
|
134
|
+
dbos_sdk_1.DBOS.logger.error(`In workflow ${wfid}, Postgres aborted a transaction but the function '${funcname}' did not raise an exception. Please ensure that the transaction method raises an exception if the database transaction is aborted.`);
|
|
135
|
+
failedForRetriableReasons = false;
|
|
136
|
+
throw new dbos_sdk_1.Error.DBOSFailedSqlTransactionError(wfid, funcname);
|
|
137
|
+
}
|
|
138
|
+
else if ((0, datasource_1.isPGKeyConflictError)(error)) {
|
|
139
|
+
throw new dbos_sdk_1.Error.DBOSWorkflowConflictError(`In workflow ${wfid}, Postgres raised a key conflict error in transaction '${funcname}'. This is not retriable, but the output will be fetched from the database.`);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
dbos_sdk_1.DBOS.logger.error(`Unexpected error raised in transaction '${funcname}: ${error}`);
|
|
143
|
+
failedForRetriableReasons = false;
|
|
144
|
+
throw error;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return result;
|
|
148
|
+
}, { isolationLevel, accessMode });
|
|
149
|
+
return result;
|
|
150
|
+
}
|
|
151
|
+
catch (e) {
|
|
152
|
+
const err = e;
|
|
153
|
+
if (failedForRetriableReasons || (0, datasource_1.isPGRetriableTransactionError)(err)) {
|
|
154
|
+
dbos_sdk_1.DBOS.span?.addEvent('TXN SERIALIZATION FAILURE', { retryWaitMillis: retryWaitMillis }, performance.now());
|
|
155
|
+
// Retry serialization failures.
|
|
156
|
+
await dbos_sdk_1.DBOS.sleepms(retryWaitMillis);
|
|
157
|
+
retryWaitMillis *= backoffFactor;
|
|
158
|
+
retryWaitMillis = retryWaitMillis < maxRetryWaitMs ? retryWaitMillis : maxRetryWaitMs;
|
|
159
|
+
continue;
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
throw err;
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
createInstance() {
|
|
168
|
+
const drizzlePool = new pg_1.Pool(this.config);
|
|
169
|
+
const ds = (0, node_postgres_1.drizzle)(drizzlePool, { schema: this.entities });
|
|
170
|
+
return ds;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
class DrizzleDataSource {
|
|
174
|
+
name;
|
|
175
|
+
config;
|
|
176
|
+
entities;
|
|
177
|
+
#provider;
|
|
178
|
+
constructor(name, config, entities = {}) {
|
|
179
|
+
this.name = name;
|
|
180
|
+
this.config = config;
|
|
181
|
+
this.entities = entities;
|
|
182
|
+
this.#provider = new DrizzleDSTH(name, config, entities);
|
|
183
|
+
(0, datasource_1.registerDataSource)(this.#provider);
|
|
184
|
+
}
|
|
185
|
+
// User calls this... DBOS not directly involved...
|
|
186
|
+
static get drizzleClient() {
|
|
187
|
+
const ctx = assertCurrentDSContextStore();
|
|
188
|
+
if (!dbos_sdk_1.DBOS.isInTransaction())
|
|
189
|
+
throw new dbos_sdk_1.Error.DBOSInvalidWorkflowTransitionError('Invalid use of `DrizzleDataSource.drizzleClient` outside of a `transaction`');
|
|
190
|
+
return ctx.drizzleClient;
|
|
191
|
+
}
|
|
192
|
+
get dataSource() {
|
|
193
|
+
return this.#provider.dataSource;
|
|
194
|
+
}
|
|
195
|
+
async initializeInternalSchema() {
|
|
196
|
+
const drizzlePool = new pg_1.Pool(this.config);
|
|
197
|
+
const ds = (0, node_postgres_1.drizzle)(drizzlePool, { schema: this.entities });
|
|
198
|
+
try {
|
|
199
|
+
await ds.execute(datasource_1.createTransactionCompletionSchemaPG);
|
|
200
|
+
await ds.execute(datasource_1.createTransactionCompletionTablePG);
|
|
201
|
+
}
|
|
202
|
+
catch (e) {
|
|
203
|
+
const error = e;
|
|
204
|
+
throw new dbos_sdk_1.Error.DBOSError(`Unexpected error initializing schema: ${error.message}`);
|
|
205
|
+
}
|
|
206
|
+
finally {
|
|
207
|
+
try {
|
|
208
|
+
await drizzlePool.end();
|
|
209
|
+
}
|
|
210
|
+
catch (e) { }
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
async runTransaction(callback, funcName, config) {
|
|
214
|
+
return await (0, datasource_1.runTransaction)(callback, funcName, { dsName: this.name, config });
|
|
215
|
+
}
|
|
216
|
+
registerTransaction(func, name, config) {
|
|
217
|
+
return (0, datasource_1.registerTransaction)(this.name, func, { name }, config);
|
|
218
|
+
}
|
|
219
|
+
// decorator
|
|
220
|
+
transaction(config) {
|
|
221
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
222
|
+
const ds = this;
|
|
223
|
+
return function decorator(_target, propertyKey, descriptor) {
|
|
224
|
+
if (!descriptor.value) {
|
|
225
|
+
throw new dbos_sdk_1.Error.DBOSError('Use of decorator when original method is undefined');
|
|
226
|
+
}
|
|
227
|
+
descriptor.value = ds.registerTransaction(descriptor.value, propertyKey.toString(), config);
|
|
228
|
+
return descriptor;
|
|
229
|
+
};
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Create user schema in database (for testing)
|
|
233
|
+
*/
|
|
234
|
+
async createSchema() {
|
|
235
|
+
const drizzlePool = new pg_1.Pool(this.config);
|
|
236
|
+
const db = (0, node_postgres_1.drizzle)(drizzlePool);
|
|
237
|
+
try {
|
|
238
|
+
const res = await (0, api_1.pushSchema)(this.entities, db);
|
|
239
|
+
await res.apply();
|
|
240
|
+
}
|
|
241
|
+
finally {
|
|
242
|
+
await drizzlePool.end();
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
exports.DrizzleDataSource = DrizzleDataSource;
|
|
247
|
+
//# sourceMappingURL=drizzle_datasource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"drizzle_datasource.js","sourceRoot":"","sources":["../../src/drizzle_datasource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.IsolationLevel = exports.DrizzleDataSource = void 0;
|
|
4
|
+
var drizzle_datasource_1 = require("./drizzle_datasource");
|
|
5
|
+
Object.defineProperty(exports, "DrizzleDataSource", { enumerable: true, get: function () { return drizzle_datasource_1.DrizzleDataSource; } });
|
|
6
|
+
Object.defineProperty(exports, "IsolationLevel", { enumerable: true, get: function () { return drizzle_datasource_1.IsolationLevel; } });
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,2DAAmG;AAA1F,uHAAA,iBAAiB,OAAA;AAA4B,oHAAA,cAAc,OAAA"}
|