@turystack/nestjs-database 0.0.11 → 2.0.0

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.
Files changed (103) hide show
  1. package/README.md +70 -0
  2. package/dist/audit.context.d.ts +7 -0
  3. package/dist/audit.context.d.ts.map +1 -0
  4. package/dist/audit.context.js +23 -0
  5. package/dist/audit.context.js.map +1 -0
  6. package/dist/database.adapter.interface.d.ts +17 -0
  7. package/dist/database.adapter.interface.d.ts.map +1 -0
  8. package/dist/database.adapter.interface.js +2 -0
  9. package/dist/database.adapter.interface.js.map +1 -0
  10. package/dist/database.constants.d.ts +2 -0
  11. package/dist/database.constants.d.ts.map +1 -1
  12. package/dist/database.constants.js +2 -0
  13. package/dist/database.constants.js.map +1 -1
  14. package/dist/database.helpers.d.ts +7 -0
  15. package/dist/database.helpers.d.ts.map +1 -0
  16. package/dist/database.helpers.js +10 -0
  17. package/dist/database.helpers.js.map +1 -0
  18. package/dist/database.module.d.ts +4 -1
  19. package/dist/database.module.d.ts.map +1 -1
  20. package/dist/database.module.js +63 -17
  21. package/dist/database.module.js.map +1 -1
  22. package/dist/database.service.d.ts +2 -4
  23. package/dist/database.service.d.ts.map +1 -1
  24. package/dist/database.service.js +10 -6
  25. package/dist/database.service.js.map +1 -1
  26. package/dist/database.types.d.ts +28 -1
  27. package/dist/database.types.d.ts.map +1 -1
  28. package/dist/drizzle/client.drizzle.d.ts +2 -8
  29. package/dist/drizzle/client.drizzle.d.ts.map +1 -1
  30. package/dist/drizzle/client.drizzle.js +3 -14
  31. package/dist/drizzle/client.drizzle.js.map +1 -1
  32. package/dist/drizzle/postgresql.adapter.d.ts +4 -0
  33. package/dist/drizzle/postgresql.adapter.d.ts.map +1 -0
  34. package/dist/drizzle/postgresql.adapter.js +42 -0
  35. package/dist/drizzle/postgresql.adapter.js.map +1 -0
  36. package/dist/drizzle/schema-builder.drizzle.d.ts +1 -1
  37. package/dist/drizzle/schema-builder.drizzle.d.ts.map +1 -1
  38. package/dist/drizzle/schema-builder.drizzle.js +7 -2
  39. package/dist/drizzle/schema-builder.drizzle.js.map +1 -1
  40. package/dist/drizzle/schema-builder.types.drizzle.d.ts.map +1 -1
  41. package/dist/dynamodb/client.dynamodb.d.ts +22 -0
  42. package/dist/dynamodb/client.dynamodb.d.ts.map +1 -0
  43. package/dist/dynamodb/client.dynamodb.js +39 -0
  44. package/dist/dynamodb/client.dynamodb.js.map +1 -0
  45. package/dist/dynamodb/dynamodb.adapter.d.ts +4 -0
  46. package/dist/dynamodb/dynamodb.adapter.d.ts.map +1 -0
  47. package/dist/dynamodb/dynamodb.adapter.js +20 -0
  48. package/dist/dynamodb/dynamodb.adapter.js.map +1 -0
  49. package/dist/dynamodb/dynamodb.repository.d.ts +37 -0
  50. package/dist/dynamodb/dynamodb.repository.d.ts.map +1 -0
  51. package/dist/dynamodb/dynamodb.repository.js +266 -0
  52. package/dist/dynamodb/dynamodb.repository.js.map +1 -0
  53. package/dist/dynamodb/dynamodb.repository.types.d.ts +55 -0
  54. package/dist/dynamodb/dynamodb.repository.types.d.ts.map +1 -0
  55. package/dist/dynamodb/dynamodb.repository.types.js +2 -0
  56. package/dist/dynamodb/dynamodb.repository.types.js.map +1 -0
  57. package/dist/dynamodb/dynamodb.transaction.d.ts +7 -0
  58. package/dist/dynamodb/dynamodb.transaction.d.ts.map +1 -0
  59. package/dist/dynamodb/dynamodb.transaction.js +28 -0
  60. package/dist/dynamodb/dynamodb.transaction.js.map +1 -0
  61. package/dist/dynamodb/schema-builder.dynamodb.d.ts +4 -0
  62. package/dist/dynamodb/schema-builder.dynamodb.d.ts.map +1 -0
  63. package/dist/dynamodb/schema-builder.dynamodb.js +58 -0
  64. package/dist/dynamodb/schema-builder.dynamodb.js.map +1 -0
  65. package/dist/dynamodb/schema-builder.types.dynamodb.d.ts +63 -0
  66. package/dist/dynamodb/schema-builder.types.dynamodb.d.ts.map +1 -0
  67. package/dist/dynamodb/schema-builder.types.dynamodb.js +2 -0
  68. package/dist/dynamodb/schema-builder.types.dynamodb.js.map +1 -0
  69. package/dist/dynamodb.d.ts +3 -0
  70. package/dist/dynamodb.d.ts.map +1 -0
  71. package/dist/dynamodb.js +3 -0
  72. package/dist/dynamodb.js.map +1 -0
  73. package/dist/index.d.ts +7 -8
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +4 -3
  76. package/dist/index.js.map +1 -1
  77. package/dist/postgresql.d.ts +3 -0
  78. package/dist/postgresql.d.ts.map +1 -0
  79. package/dist/postgresql.js +3 -0
  80. package/dist/postgresql.js.map +1 -0
  81. package/dist/repository/table-repository.d.ts +6 -0
  82. package/dist/repository/table-repository.d.ts.map +1 -1
  83. package/dist/repository/table-repository.errors.d.ts.map +1 -1
  84. package/dist/repository/table-repository.js +115 -39
  85. package/dist/repository/table-repository.js.map +1 -1
  86. package/dist/repository/table-repository.types.d.ts +3 -1
  87. package/dist/repository/table-repository.types.d.ts.map +1 -1
  88. package/dist/transaction.context.d.ts +22 -0
  89. package/dist/transaction.context.d.ts.map +1 -0
  90. package/dist/transaction.context.js +48 -0
  91. package/dist/transaction.context.js.map +1 -0
  92. package/dist/{drizzle/transactional.drizzle.d.ts → transactional.d.ts} +3 -2
  93. package/dist/transactional.d.ts.map +1 -0
  94. package/dist/transactional.js +38 -0
  95. package/dist/transactional.js.map +1 -0
  96. package/package.json +48 -10
  97. package/dist/drizzle/transaction-context.drizzle.d.ts +0 -7
  98. package/dist/drizzle/transaction-context.drizzle.d.ts.map +0 -1
  99. package/dist/drizzle/transaction-context.drizzle.js +0 -16
  100. package/dist/drizzle/transaction-context.drizzle.js.map +0 -1
  101. package/dist/drizzle/transactional.drizzle.d.ts.map +0 -1
  102. package/dist/drizzle/transactional.drizzle.js +0 -19
  103. package/dist/drizzle/transactional.drizzle.js.map +0 -1
@@ -0,0 +1,48 @@
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ export const transactionStorage = new AsyncLocalStorage();
3
+ export function getCurrentTx() {
4
+ return transactionStorage.getStore();
5
+ }
6
+ export const beforeCommitStorage = new AsyncLocalStorage();
7
+ export function onBeforeCommit(hook) {
8
+ const hooks = beforeCommitStorage.getStore();
9
+ if (!hooks) {
10
+ return false;
11
+ }
12
+ hooks.push(hook);
13
+ return true;
14
+ }
15
+ export const transactionStateStorage = new AsyncLocalStorage();
16
+ export function transactionState(key, create) {
17
+ const state = transactionStateStorage.getStore();
18
+ if (!state) {
19
+ return undefined;
20
+ }
21
+ if (!state.has(key)) {
22
+ state.set(key, create());
23
+ }
24
+ return state.get(key);
25
+ }
26
+ export const afterCommitStorage = new AsyncLocalStorage();
27
+ export function onAfterCommit(hook) {
28
+ const hooks = afterCommitStorage.getStore();
29
+ if (!hooks) {
30
+ return false;
31
+ }
32
+ hooks.push(hook);
33
+ return true;
34
+ }
35
+ let _engine;
36
+ export function registerEngine(engine) {
37
+ _engine = engine;
38
+ }
39
+ export function getEngine() {
40
+ if (!_engine) {
41
+ throw new Error('[DatabaseModule] engine not initialized — was DatabaseModule.register() called?');
42
+ }
43
+ return _engine;
44
+ }
45
+ export function getDb() {
46
+ return getEngine().client;
47
+ }
48
+ //# sourceMappingURL=transaction.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transaction.context.js","sourceRoot":"","sources":["../src/transaction.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAKpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAoB,CAAA;AAE3E,MAAM,UAAU,YAAY;IAC3B,OAAO,kBAAkB,CAAC,QAAQ,EAAE,CAAA;AACrC,CAAC;AAYD,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,iBAAiB,EAAsB,CAAA;AAa9E,MAAM,UAAU,cAAc,CAAC,IAAsB;IACpD,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,EAAE,CAAA;IAE5C,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,KAAK,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhB,OAAO,IAAI,CAAA;AACZ,CAAC;AAGD,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,iBAAiB,EAEzD,CAAA;AAYH,MAAM,UAAU,gBAAgB,CAC/B,GAAW,EACX,MAAe;IAEf,MAAM,KAAK,GAAG,uBAAuB,CAAC,QAAQ,EAAE,CAAA;IAEhD,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,SAAS,CAAA;IACjB,CAAC;IAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,CAAA;IACzB,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,GAAG,CAAM,CAAA;AAC3B,CAAC;AAMD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAqB,CAAA;AAY5E,MAAM,UAAU,aAAa,CAAC,IAAqB;IAClD,MAAM,KAAK,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAA;IAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,KAAK,CAAA;IACb,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhB,OAAO,IAAI,CAAA;AACZ,CAAC;AAgBD,IAAI,OAAqC,CAAA;AAEzC,MAAM,UAAU,cAAc,CAAC,MAAwB;IACtD,OAAO,GAAG,MAAM,CAAA;AACjB,CAAC;AAED,MAAM,UAAU,SAAS;IACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACd,iFAAiF,CACjF,CAAA;IACF,CAAC;IAED,OAAO,OAAO,CAAA;AACf,CAAC;AAGD,MAAM,UAAU,KAAK;IACpB,OAAO,SAAS,EAAE,CAAC,MAA0B,CAAA;AAC9C,CAAC"}
@@ -1,3 +1,4 @@
1
- export type IsolationLevel = 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';
1
+ import type { IsolationLevel } from './database.types.js';
2
+ export type { IsolationLevel } from './database.types.js';
2
3
  export declare function Transactional(isolationLevel?: IsolationLevel): (_target: object, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
3
- //# sourceMappingURL=transactional.drizzle.d.ts.map
4
+ //# sourceMappingURL=transactional.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactional.d.ts","sourceRoot":"","sources":["../src/transactional.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAsB,MAAM,qBAAqB,CAAA;AAY7E,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAgBzD,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,cAAc,aAElD,MAAM,gBACD,MAAM,GAAG,MAAM,cACjB,kBAAkB,KAC5B,kBAAkB,CA+DrB"}
@@ -0,0 +1,38 @@
1
+ import { afterCommitStorage, beforeCommitStorage, getCurrentTx, getEngine, transactionStateStorage, transactionStorage, } from './transaction.context.js';
2
+ export function Transactional(isolationLevel) {
3
+ return (_target, _propertyKey, descriptor) => {
4
+ const original = descriptor.value;
5
+ descriptor.value = async function (...args) {
6
+ if (getCurrentTx() !== undefined) {
7
+ return original.apply(this, args);
8
+ }
9
+ const engine = getEngine();
10
+ const before = [];
11
+ const after = [];
12
+ const state = new Map();
13
+ const run = async (tx) => {
14
+ const value = await original.apply(this, args);
15
+ for (const hook of before) {
16
+ await hook(tx);
17
+ }
18
+ return value;
19
+ };
20
+ const options = isolationLevel
21
+ ? {
22
+ isolationLevel,
23
+ }
24
+ : undefined;
25
+ const result = await engine.adapter.transaction.run(engine.client, (tx) => transactionStorage.run(tx, () => transactionStateStorage.run(state, () => beforeCommitStorage.run(before, () => afterCommitStorage.run(after, () => run(tx))))), options);
26
+ for (const hook of after) {
27
+ try {
28
+ await hook();
29
+ }
30
+ catch {
31
+ }
32
+ }
33
+ return result;
34
+ };
35
+ return descriptor;
36
+ };
37
+ }
38
+ //# sourceMappingURL=transactional.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transactional.js","sourceRoot":"","sources":["../src/transactional.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,kBAAkB,EAElB,mBAAmB,EACnB,YAAY,EACZ,SAAS,EACT,uBAAuB,EACvB,kBAAkB,GAClB,MAAM,0BAA0B,CAAA;AAkBjC,MAAM,UAAU,aAAa,CAAC,cAA+B;IAC5D,OAAO,CACN,OAAe,EACf,YAA6B,EAC7B,UAA8B,EACT,EAAE;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAEP,CAAA;QAErB,UAAU,CAAC,KAAK,GAAG,KAAK,WAA0B,GAAG,IAAe;YACnE,IAAI,YAAY,EAAE,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAClC,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,EAAE,CAAA;YAE1B,MAAM,MAAM,GAAuB,EAAE,CAAA;YACrC,MAAM,KAAK,GAAsB,EAAE,CAAA;YAEnC,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmB,CAAA;YAExC,MAAM,GAAG,GAAG,KAAK,EAAE,EAAW,EAAoB,EAAE;gBACnD,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;gBAI9C,KAAK,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,EAAW,CAAC,CAAA;gBACxB,CAAC;gBAED,OAAO,KAAK,CAAA;YACb,CAAC,CAAA;YAED,MAAM,OAAO,GAAmC,cAAc;gBAC7D,CAAC,CAAC;oBACA,cAAc;iBACd;gBACF,CAAC,CAAC,SAAS,CAAA;YAEZ,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAClD,MAAM,CAAC,MAAM,EACb,CAAC,EAAW,EAAE,EAAE,CACf,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAC/B,uBAAuB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CACvC,mBAAmB,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CACpC,kBAAkB,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAC5C,CACD,CACD,EACF,OAAO,CACP,CAAA;YAID,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAC1B,IAAI,CAAC;oBACJ,MAAM,IAAI,EAAE,CAAA;gBACb,CAAC;gBAAC,MAAM,CAAC;gBAET,CAAC;YACF,CAAC;YAED,OAAO,MAAM,CAAA;QACd,CAAC,CAAA;QAED,OAAO,UAAU,CAAA;IAClB,CAAC,CAAA;AACF,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,10 @@
1
1
  {
2
2
  "name": "@turystack/nestjs-database",
3
+ "description": "Typed database module for NestJS: schema builder, per-table repositories, and transactional decorator. PostgreSQL (Drizzle) and DynamoDB adapters.",
3
4
  "private": false,
4
- "version": "0.0.11",
5
+ "version": "2.0.0",
5
6
  "type": "module",
7
+ "sideEffects": false,
6
8
  "main": "./dist/index.js",
7
9
  "module": "./dist/index.js",
8
10
  "types": "./dist/index.d.ts",
@@ -11,11 +13,24 @@
11
13
  "types": "./dist/index.d.ts",
12
14
  "import": "./dist/index.js",
13
15
  "default": "./dist/index.js"
16
+ },
17
+ "./postgresql": {
18
+ "types": "./dist/postgresql.d.ts",
19
+ "import": "./dist/postgresql.js",
20
+ "default": "./dist/postgresql.js"
21
+ },
22
+ "./dynamodb": {
23
+ "types": "./dist/dynamodb.d.ts",
24
+ "import": "./dist/dynamodb.js",
25
+ "default": "./dist/dynamodb.js"
14
26
  }
15
27
  },
16
28
  "publishConfig": {
17
29
  "access": "public"
18
30
  },
31
+ "engines": {
32
+ "node": ">=20"
33
+ },
19
34
  "files": [
20
35
  "dist"
21
36
  ],
@@ -24,39 +39,62 @@
24
39
  "url": "https://github.com/turystack/nestjs-database.git"
25
40
  },
26
41
  "peerDependencies": {
42
+ "@aws-sdk/client-dynamodb": "^3.0.0",
43
+ "@aws-sdk/lib-dynamodb": "^3.0.0",
27
44
  "@nestjs/common": "^11.0.0",
28
45
  "@nestjs/core": "^11.0.0",
46
+ "@turystack/exceptions": "^1.0.0",
47
+ "@turystack/nestjs-config": "^1.0.0",
29
48
  "drizzle-orm": ">=0.44.0",
30
49
  "pg": "^8.0.0",
31
50
  "reflect-metadata": "^0.2.0",
32
51
  "uuidv7": "^1.2.1"
33
52
  },
34
53
  "peerDependenciesMeta": {
54
+ "@aws-sdk/client-dynamodb": {
55
+ "optional": true
56
+ },
57
+ "@aws-sdk/lib-dynamodb": {
58
+ "optional": true
59
+ },
60
+ "drizzle-orm": {
61
+ "optional": true
62
+ },
35
63
  "pg": {
36
64
  "optional": true
37
65
  }
38
66
  },
39
67
  "devDependencies": {
40
- "@biomejs/biome": "2.2.2",
68
+ "@biomejs/biome": "2.5.4",
41
69
  "@nestjs/common": "^11.0.0",
42
70
  "@nestjs/core": "^11.0.0",
43
- "@types/node": "^22.19.15",
71
+ "@nestjs/testing": "^11.0.0",
72
+ "@turystack/exceptions": "^1.0.0",
73
+ "@turystack/nestjs-config": "^1.0.0",
74
+ "@types/node": "^25.5.0",
44
75
  "@types/pg": "^8.0.0",
45
- "@vitest/coverage-v8": "^2.1.0",
76
+ "@vitest/coverage-v8": "^4.1.10",
46
77
  "drizzle-orm": "^0.44.0",
47
78
  "pg": "^8.0.0",
48
79
  "reflect-metadata": "^0.2.2",
49
- "tsc-alias": "^1.8.16",
50
- "typescript": "^5.5.0",
80
+ "tsc-alias": "^1.9.1",
81
+ "typescript": "^7.0.2",
51
82
  "uuidv7": "^1.2.1",
52
- "vitest": "^2.1.0"
83
+ "vite": "^8.1.5",
84
+ "vitest": "^4.1.10",
85
+ "zod": "^4.0.0"
53
86
  },
54
87
  "scripts": {
55
88
  "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
89
+ "check": "biome check ./src",
90
+ "check:fix": "biome check --write ./src",
91
+ "format": "biome format --write ./src",
92
+ "lint": "biome lint ./src",
93
+ "services:down": "docker compose down -v",
94
+ "services:up": "docker compose up -d --wait",
56
95
  "test": "vitest run",
57
96
  "test:cov": "vitest run --coverage",
58
- "lint": "biome lint ./src",
59
- "format": "biome format --write ./src",
60
- "check": "biome check --write ./src"
97
+ "test:e2e": "vitest run --config vitest.e2e.config.ts",
98
+ "typecheck": "tsc --noEmit"
61
99
  }
62
100
  }
@@ -1,7 +0,0 @@
1
- import { AsyncLocalStorage } from 'node:async_hooks';
2
- import type { ResolvedDatabase } from '../database.types.js';
3
- export declare const transactionStorage: AsyncLocalStorage<unknown>;
4
- export declare function getCurrentTx(): ResolvedDatabase | undefined;
5
- export declare function registerDb(db: ResolvedDatabase): void;
6
- export declare function getDb(): ResolvedDatabase;
7
- //# sourceMappingURL=transaction-context.drizzle.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction-context.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/transaction-context.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,eAAO,MAAM,kBAAkB,4BACW,CAAA;AAE1C,wBAAgB,YAAY,IAAI,gBAAgB,GAAG,SAAS,CAE3D;AAID,wBAAgB,UAAU,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAErD;AAED,wBAAgB,KAAK,IAAI,gBAAgB,CAQxC"}
@@ -1,16 +0,0 @@
1
- import { AsyncLocalStorage } from 'node:async_hooks';
2
- export const transactionStorage = new AsyncLocalStorage();
3
- export function getCurrentTx() {
4
- return transactionStorage.getStore();
5
- }
6
- let _db;
7
- export function registerDb(db) {
8
- _db = db;
9
- }
10
- export function getDb() {
11
- if (!_db) {
12
- throw new Error('[DatabaseModule] db not initialized — was DatabaseModule.register() called?');
13
- }
14
- return _db;
15
- }
16
- //# sourceMappingURL=transaction-context.drizzle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transaction-context.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/transaction-context.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAIpD,MAAM,CAAC,MAAM,kBAAkB,GAC9B,IAAI,iBAAiB,EAAoB,CAAA;AAE1C,MAAM,UAAU,YAAY;IAC3B,OAAO,kBAAkB,CAAC,QAAQ,EAAE,CAAA;AACrC,CAAC;AAED,IAAI,GAAiC,CAAA;AAErC,MAAM,UAAU,UAAU,CAAC,EAAoB;IAC9C,GAAG,GAAG,EAAE,CAAA;AACT,CAAC;AAED,MAAM,UAAU,KAAK;IACpB,IAAI,CAAC,GAAG,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CACd,6EAA6E,CAC7E,CAAA;IACF,CAAC;IAED,OAAO,GAAG,CAAA;AACX,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactional.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/transactional.drizzle.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GACvB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,CAAA;AAEjB,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,cAAc,IAE3D,SAAS,MAAM,EACf,cAAc,MAAM,GAAG,MAAM,EAC7B,YAAY,kBAAkB,KAC5B,kBAAkB,CA8BrB"}
@@ -1,19 +0,0 @@
1
- import { getCurrentTx, getDb, transactionStorage, } from '../drizzle/transaction-context.drizzle.js';
2
- export function Transactional(isolationLevel) {
3
- return (_target, _propertyKey, descriptor) => {
4
- const original = descriptor.value;
5
- descriptor.value = async function (...args) {
6
- if (getCurrentTx() !== undefined) {
7
- return original.apply(this, args);
8
- }
9
- const db = getDb();
10
- return db.transaction((tx) => transactionStorage.run(tx, () => original.apply(this, args)), isolationLevel
11
- ? {
12
- isolationLevel,
13
- }
14
- : undefined);
15
- };
16
- return descriptor;
17
- };
18
- }
19
- //# sourceMappingURL=transactional.drizzle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transactional.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/transactional.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,YAAY,EACZ,KAAK,EACL,kBAAkB,GAClB,MAAM,0CAA0C,CAAA;AAQjD,MAAM,UAAU,aAAa,CAAC,cAA+B;IAC5D,OAAO,CACN,OAAe,EACf,YAA6B,EAC7B,UAA8B,EACT,EAAE;QACvB,MAAM,QAAQ,GAAG,UAAU,CAAC,KAEP,CAAA;QAErB,UAAU,CAAC,KAAK,GAAG,KAAK,WAA0B,GAAG,IAAe;YACnE,IAAI,YAAY,EAAE,KAAK,SAAS,EAAE,CAAC;gBAClC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAClC,CAAC;YAED,MAAM,EAAE,GAAG,KAAK,EAKf,CAAA;YAED,OAAO,EAAE,CAAC,WAAW,CACpB,CAAC,EAAW,EAAE,EAAE,CACf,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAC7D,cAAc;gBACb,CAAC,CAAC;oBACA,cAAc;iBACd;gBACF,CAAC,CAAC,SAAS,CACZ,CAAA;QACF,CAAC,CAAA;QAED,OAAO,UAAU,CAAA;IAClB,CAAC,CAAA;AACF,CAAC"}