@dbos-inc/knex-datasource 4.4.4-preview.gc90a14c7ef → 4.4.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/index.d.ts +3 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +14 -12
- package/dist/index.js.map +1 -1
- package/index.ts +18 -11
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -9,9 +9,9 @@ export declare class KnexDataSource implements DBOSDataSource<TransactionConfig>
|
|
|
9
9
|
readonly name: string;
|
|
10
10
|
static get client(): Knex.Transaction;
|
|
11
11
|
get client(): Knex.Transaction;
|
|
12
|
-
static initializeDBOSSchema(knexOrConfig: Knex.Config): Promise<void>;
|
|
13
|
-
static uninitializeDBOSSchema(knexOrConfig: Knex.Config): Promise<void>;
|
|
14
|
-
constructor(name: string, config: Knex.Config);
|
|
12
|
+
static initializeDBOSSchema(knexOrConfig: Knex.Config, schemaName?: string): Promise<void>;
|
|
13
|
+
static uninitializeDBOSSchema(knexOrConfig: Knex.Config, schemaName?: string): Promise<void>;
|
|
14
|
+
constructor(name: string, config: Knex.Config, schemaName?: string);
|
|
15
15
|
runTransaction<T>(func: () => Promise<T>, config?: TransactionConfig): Promise<T>;
|
|
16
16
|
registerTransaction<This, Args extends unknown[], Return>(func: (this: This, ...args: Args) => Promise<Return>, config?: TransactionConfig & FunctionName): (this: This, ...args: Args) => Promise<Return>;
|
|
17
17
|
transaction(config?: TransactionConfig): <This, Args extends unknown[], Return>(target: object, propertyKey: PropertyKey, descriptor: TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>) => TypedPropertyDescriptor<(this: This, ...args: Args) => Promise<Return>>;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAML,cAAc,EAMf,MAAM,+BAA+B,CAAC;AAEvC,OAAa,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAevC,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,UAAU,CAAC,GAAG;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmC,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnF,OAAO,EAML,cAAc,EAMf,MAAM,+BAA+B,CAAC;AAEvC,OAAa,EAAE,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAevC,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,UAAU,CAAC,GAAG;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AA+LF,qBAAa,cAAe,YAAW,cAAc,CAAC,iBAAiB,CAAC;;IA6DpE,QAAQ,CAAC,IAAI,EAAE,MAAM;IAhDvB,MAAM,KAAK,MAAM,IAAI,IAAI,CAAC,WAAW,CAEpC;IAED,IAAI,MAAM,IAAI,IAAI,CAAC,WAAW,CAE7B;WAEY,oBAAoB,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAE,MAAe;WAkB3E,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,UAAU,GAAE,MAAe;gBAsB/E,IAAI,EAAE,MAAM,EACrB,MAAM,EAAE,IAAI,CAAC,MAAM,EACnB,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
|
@@ -16,9 +16,11 @@ class KnexTransactionHandler {
|
|
|
16
16
|
config;
|
|
17
17
|
dsType = 'KnexDataSource';
|
|
18
18
|
#knexDBField;
|
|
19
|
-
|
|
19
|
+
schemaName;
|
|
20
|
+
constructor(name, config, schemaName = 'dbos') {
|
|
20
21
|
this.name = name;
|
|
21
22
|
this.config = config;
|
|
23
|
+
this.schemaName = schemaName;
|
|
22
24
|
}
|
|
23
25
|
async initialize() {
|
|
24
26
|
const knexDB = this.#knexDBField;
|
|
@@ -27,7 +29,7 @@ class KnexTransactionHandler {
|
|
|
27
29
|
// Check for connectivity & the schema
|
|
28
30
|
let installed = false;
|
|
29
31
|
try {
|
|
30
|
-
const { rows } = await this.#knexDBField.raw(datasource_1.checkSchemaInstallationPG);
|
|
32
|
+
const { rows } = await this.#knexDBField.raw((0, datasource_1.checkSchemaInstallationPG)(this.schemaName));
|
|
31
33
|
installed = !!rows[0].schema_exists && !!rows[0].table_exists;
|
|
32
34
|
}
|
|
33
35
|
catch (e) {
|
|
@@ -35,11 +37,11 @@ class KnexTransactionHandler {
|
|
|
35
37
|
}
|
|
36
38
|
if (!installed) {
|
|
37
39
|
try {
|
|
38
|
-
await this.#knexDBField.raw(datasource_1.createTransactionCompletionSchemaPG);
|
|
39
|
-
await this.#knexDBField.raw(datasource_1.createTransactionCompletionTablePG);
|
|
40
|
+
await this.#knexDBField.raw((0, datasource_1.createTransactionCompletionSchemaPG)(this.schemaName));
|
|
41
|
+
await this.#knexDBField.raw((0, datasource_1.createTransactionCompletionTablePG)(this.schemaName));
|
|
40
42
|
}
|
|
41
43
|
catch (err) {
|
|
42
|
-
throw new Error(`In initialization of 'KnexDataSource' ${this.name}: The '
|
|
44
|
+
throw new Error(`In initialization of 'KnexDataSource' ${this.name}: The '${this.schemaName}.transaction_completion' table does not exist, and could not be created. This should be added to your database migrations.
|
|
43
45
|
See: https://docs.dbos.dev/typescript/tutorials/transaction-tutorial#installing-the-dbos-schema`);
|
|
44
46
|
}
|
|
45
47
|
}
|
|
@@ -181,7 +183,7 @@ class KnexDataSource {
|
|
|
181
183
|
get client() {
|
|
182
184
|
return KnexDataSource.#getClient(this.#provider);
|
|
183
185
|
}
|
|
184
|
-
static async initializeDBOSSchema(knexOrConfig) {
|
|
186
|
+
static async initializeDBOSSchema(knexOrConfig, schemaName = 'dbos') {
|
|
185
187
|
if (isKnex(knexOrConfig)) {
|
|
186
188
|
await $initSchema(knexOrConfig);
|
|
187
189
|
}
|
|
@@ -195,11 +197,11 @@ class KnexDataSource {
|
|
|
195
197
|
}
|
|
196
198
|
}
|
|
197
199
|
async function $initSchema(knexDB) {
|
|
198
|
-
await knexDB.raw(datasource_1.createTransactionCompletionSchemaPG);
|
|
199
|
-
await knexDB.raw(datasource_1.createTransactionCompletionTablePG);
|
|
200
|
+
await knexDB.raw((0, datasource_1.createTransactionCompletionSchemaPG)(schemaName));
|
|
201
|
+
await knexDB.raw((0, datasource_1.createTransactionCompletionTablePG)(schemaName));
|
|
200
202
|
}
|
|
201
203
|
}
|
|
202
|
-
static async uninitializeDBOSSchema(knexOrConfig) {
|
|
204
|
+
static async uninitializeDBOSSchema(knexOrConfig, schemaName = 'dbos') {
|
|
203
205
|
if (isKnex(knexOrConfig)) {
|
|
204
206
|
await $uninitSchema(knexOrConfig);
|
|
205
207
|
}
|
|
@@ -213,13 +215,13 @@ class KnexDataSource {
|
|
|
213
215
|
}
|
|
214
216
|
}
|
|
215
217
|
async function $uninitSchema(knexDB) {
|
|
216
|
-
await knexDB.raw(
|
|
218
|
+
await knexDB.raw(`DROP TABLE IF EXISTS "${schemaName}".transaction_completion; DROP SCHEMA IF EXISTS "${schemaName}" CASCADE;`);
|
|
217
219
|
}
|
|
218
220
|
}
|
|
219
221
|
#provider;
|
|
220
|
-
constructor(name, config) {
|
|
222
|
+
constructor(name, config, schemaName = 'dbos') {
|
|
221
223
|
this.name = name;
|
|
222
|
-
this.#provider = new KnexTransactionHandler(name, config);
|
|
224
|
+
this.#provider = new KnexTransactionHandler(name, config, schemaName);
|
|
223
225
|
(0, datasource_1.registerDataSource)(this.#provider);
|
|
224
226
|
}
|
|
225
227
|
async runTransaction(func, config) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA,qCAAqC;;;;;;AAErC,iDAAmF;AACnF,8DAYuC;AACvC,6CAAgD;AAChD,gDAAuC;AACvC,yCAAsC;AAkBtC,MAAM,aAAa,GAAG,IAAI,+BAAiB,EAAyB,CAAC;AAErE,MAAM,sBAAsB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
|
package/index.ts
CHANGED
|
@@ -39,11 +39,15 @@ const asyncLocalCtx = new AsyncLocalStorage<KnexDataSourceContext>();
|
|
|
39
39
|
class KnexTransactionHandler implements DataSourceTransactionHandler {
|
|
40
40
|
readonly dsType = 'KnexDataSource';
|
|
41
41
|
#knexDBField: Knex | undefined;
|
|
42
|
+
readonly schemaName: string;
|
|
42
43
|
|
|
43
44
|
constructor(
|
|
44
45
|
readonly name: string,
|
|
45
46
|
private readonly config: Knex.Config,
|
|
46
|
-
|
|
47
|
+
schemaName: string = 'dbos',
|
|
48
|
+
) {
|
|
49
|
+
this.schemaName = schemaName;
|
|
50
|
+
}
|
|
47
51
|
|
|
48
52
|
async initialize(): Promise<void> {
|
|
49
53
|
const knexDB = this.#knexDBField;
|
|
@@ -54,7 +58,7 @@ class KnexTransactionHandler implements DataSourceTransactionHandler {
|
|
|
54
58
|
let installed = false;
|
|
55
59
|
try {
|
|
56
60
|
const { rows } = await this.#knexDBField.raw<{ rows: CheckSchemaInstallationReturn[] }>(
|
|
57
|
-
checkSchemaInstallationPG,
|
|
61
|
+
checkSchemaInstallationPG(this.schemaName),
|
|
58
62
|
);
|
|
59
63
|
installed = !!rows[0].schema_exists && !!rows[0].table_exists;
|
|
60
64
|
} catch (e) {
|
|
@@ -65,11 +69,11 @@ class KnexTransactionHandler implements DataSourceTransactionHandler {
|
|
|
65
69
|
|
|
66
70
|
if (!installed) {
|
|
67
71
|
try {
|
|
68
|
-
await this.#knexDBField.raw(createTransactionCompletionSchemaPG);
|
|
69
|
-
await this.#knexDBField.raw(createTransactionCompletionTablePG);
|
|
72
|
+
await this.#knexDBField.raw(createTransactionCompletionSchemaPG(this.schemaName));
|
|
73
|
+
await this.#knexDBField.raw(createTransactionCompletionTablePG(this.schemaName));
|
|
70
74
|
} catch (err) {
|
|
71
75
|
throw new Error(
|
|
72
|
-
`In initialization of 'KnexDataSource' ${this.name}: The '
|
|
76
|
+
`In initialization of 'KnexDataSource' ${this.name}: The '${this.schemaName}.transaction_completion' table does not exist, and could not be created. This should be added to your database migrations.
|
|
73
77
|
See: https://docs.dbos.dev/typescript/tutorials/transaction-tutorial#installing-the-dbos-schema`,
|
|
74
78
|
);
|
|
75
79
|
}
|
|
@@ -240,7 +244,7 @@ export class KnexDataSource implements DBOSDataSource<TransactionConfig> {
|
|
|
240
244
|
return KnexDataSource.#getClient(this.#provider);
|
|
241
245
|
}
|
|
242
246
|
|
|
243
|
-
static async initializeDBOSSchema(knexOrConfig: Knex.Config) {
|
|
247
|
+
static async initializeDBOSSchema(knexOrConfig: Knex.Config, schemaName: string = 'dbos') {
|
|
244
248
|
if (isKnex(knexOrConfig)) {
|
|
245
249
|
await $initSchema(knexOrConfig);
|
|
246
250
|
} else {
|
|
@@ -253,12 +257,12 @@ export class KnexDataSource implements DBOSDataSource<TransactionConfig> {
|
|
|
253
257
|
}
|
|
254
258
|
|
|
255
259
|
async function $initSchema(knexDB: Knex) {
|
|
256
|
-
await knexDB.raw(createTransactionCompletionSchemaPG);
|
|
257
|
-
await knexDB.raw(createTransactionCompletionTablePG);
|
|
260
|
+
await knexDB.raw(createTransactionCompletionSchemaPG(schemaName));
|
|
261
|
+
await knexDB.raw(createTransactionCompletionTablePG(schemaName));
|
|
258
262
|
}
|
|
259
263
|
}
|
|
260
264
|
|
|
261
|
-
static async uninitializeDBOSSchema(knexOrConfig: Knex.Config) {
|
|
265
|
+
static async uninitializeDBOSSchema(knexOrConfig: Knex.Config, schemaName: string = 'dbos') {
|
|
262
266
|
if (isKnex(knexOrConfig)) {
|
|
263
267
|
await $uninitSchema(knexOrConfig);
|
|
264
268
|
} else {
|
|
@@ -271,7 +275,9 @@ export class KnexDataSource implements DBOSDataSource<TransactionConfig> {
|
|
|
271
275
|
}
|
|
272
276
|
|
|
273
277
|
async function $uninitSchema(knexDB: Knex) {
|
|
274
|
-
await knexDB.raw(
|
|
278
|
+
await knexDB.raw(
|
|
279
|
+
`DROP TABLE IF EXISTS "${schemaName}".transaction_completion; DROP SCHEMA IF EXISTS "${schemaName}" CASCADE;`,
|
|
280
|
+
);
|
|
275
281
|
}
|
|
276
282
|
}
|
|
277
283
|
|
|
@@ -280,8 +286,9 @@ export class KnexDataSource implements DBOSDataSource<TransactionConfig> {
|
|
|
280
286
|
constructor(
|
|
281
287
|
readonly name: string,
|
|
282
288
|
config: Knex.Config,
|
|
289
|
+
schemaName: string = 'dbos',
|
|
283
290
|
) {
|
|
284
|
-
this.#provider = new KnexTransactionHandler(name, config);
|
|
291
|
+
this.#provider = new KnexTransactionHandler(name, config, schemaName);
|
|
285
292
|
registerDataSource(this.#provider);
|
|
286
293
|
}
|
|
287
294
|
|
package/package.json
CHANGED