@turystack/nestjs-database 1.0.0 → 2.1.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.
- package/README.md +35 -4
- package/dist/database.adapter.interface.d.ts +17 -0
- package/dist/database.adapter.interface.d.ts.map +1 -0
- package/dist/database.adapter.interface.js +2 -0
- package/dist/database.adapter.interface.js.map +1 -0
- package/dist/database.constants.d.ts +2 -0
- package/dist/database.constants.d.ts.map +1 -1
- package/dist/database.constants.js +2 -0
- package/dist/database.constants.js.map +1 -1
- package/dist/database.helpers.d.ts +2 -0
- package/dist/database.helpers.d.ts.map +1 -1
- package/dist/database.helpers.js +3 -0
- package/dist/database.helpers.js.map +1 -1
- package/dist/database.module.d.ts +1 -0
- package/dist/database.module.d.ts.map +1 -1
- package/dist/database.module.js +41 -23
- package/dist/database.module.js.map +1 -1
- package/dist/database.service.d.ts +2 -2
- package/dist/database.service.d.ts.map +1 -1
- package/dist/database.service.js +8 -5
- package/dist/database.service.js.map +1 -1
- package/dist/database.types.d.ts +28 -1
- package/dist/database.types.d.ts.map +1 -1
- package/dist/drizzle/client.drizzle.d.ts +2 -2
- package/dist/drizzle/client.drizzle.d.ts.map +1 -1
- package/dist/drizzle/client.drizzle.js +1 -1
- package/dist/drizzle/client.drizzle.js.map +1 -1
- package/dist/drizzle/postgresql.adapter.d.ts +4 -0
- package/dist/drizzle/postgresql.adapter.d.ts.map +1 -0
- package/dist/drizzle/postgresql.adapter.js +42 -0
- package/dist/drizzle/postgresql.adapter.js.map +1 -0
- package/dist/dynamodb/client.dynamodb.d.ts +22 -0
- package/dist/dynamodb/client.dynamodb.d.ts.map +1 -0
- package/dist/dynamodb/client.dynamodb.js +39 -0
- package/dist/dynamodb/client.dynamodb.js.map +1 -0
- package/dist/dynamodb/dynamodb.adapter.d.ts +4 -0
- package/dist/dynamodb/dynamodb.adapter.d.ts.map +1 -0
- package/dist/dynamodb/dynamodb.adapter.js +20 -0
- package/dist/dynamodb/dynamodb.adapter.js.map +1 -0
- package/dist/dynamodb/dynamodb.repository.d.ts +37 -0
- package/dist/dynamodb/dynamodb.repository.d.ts.map +1 -0
- package/dist/dynamodb/dynamodb.repository.js +266 -0
- package/dist/dynamodb/dynamodb.repository.js.map +1 -0
- package/dist/dynamodb/dynamodb.repository.types.d.ts +55 -0
- package/dist/dynamodb/dynamodb.repository.types.d.ts.map +1 -0
- package/dist/dynamodb/dynamodb.repository.types.js +2 -0
- package/dist/dynamodb/dynamodb.repository.types.js.map +1 -0
- package/dist/dynamodb/dynamodb.transaction.d.ts +7 -0
- package/dist/dynamodb/dynamodb.transaction.d.ts.map +1 -0
- package/dist/dynamodb/dynamodb.transaction.js +28 -0
- package/dist/dynamodb/dynamodb.transaction.js.map +1 -0
- package/dist/dynamodb/schema-builder.dynamodb.d.ts +4 -0
- package/dist/dynamodb/schema-builder.dynamodb.d.ts.map +1 -0
- package/dist/dynamodb/schema-builder.dynamodb.js +58 -0
- package/dist/dynamodb/schema-builder.dynamodb.js.map +1 -0
- package/dist/dynamodb/schema-builder.types.dynamodb.d.ts +63 -0
- package/dist/dynamodb/schema-builder.types.dynamodb.d.ts.map +1 -0
- package/dist/dynamodb/schema-builder.types.dynamodb.js +2 -0
- package/dist/dynamodb/schema-builder.types.dynamodb.js.map +1 -0
- package/dist/dynamodb.d.ts +3 -0
- package/dist/dynamodb.d.ts.map +1 -0
- package/dist/dynamodb.js +3 -0
- package/dist/dynamodb.js.map +1 -0
- package/dist/index.d.ts +8 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -5
- package/dist/index.js.map +1 -1
- package/dist/postgresql.d.ts +3 -0
- package/dist/postgresql.d.ts.map +1 -0
- package/dist/postgresql.js +3 -0
- package/dist/postgresql.js.map +1 -0
- package/dist/{drizzle/transaction-context.drizzle.d.ts → transaction.context.d.ts} +10 -3
- package/dist/transaction.context.d.ts.map +1 -0
- package/dist/{drizzle/transaction-context.drizzle.js → transaction.context.js} +11 -8
- package/dist/transaction.context.js.map +1 -0
- package/dist/{drizzle/transactional.drizzle.d.ts → transactional.d.ts} +3 -2
- package/dist/transactional.d.ts.map +1 -0
- package/dist/{drizzle/transactional.drizzle.js → transactional.js} +6 -5
- package/dist/transactional.js.map +1 -0
- package/package.json +31 -7
- package/dist/drizzle/client.d.ts +0 -12
- package/dist/drizzle/client.d.ts.map +0 -1
- package/dist/drizzle/client.js +0 -34
- package/dist/drizzle/client.js.map +0 -1
- package/dist/drizzle/index.d.ts +0 -4
- package/dist/drizzle/index.d.ts.map +0 -1
- package/dist/drizzle/index.js +0 -4
- package/dist/drizzle/index.js.map +0 -1
- package/dist/drizzle/transaction-context.d.ts +0 -9
- package/dist/drizzle/transaction-context.d.ts.map +0 -1
- package/dist/drizzle/transaction-context.drizzle.d.ts.map +0 -1
- package/dist/drizzle/transaction-context.drizzle.js.map +0 -1
- package/dist/drizzle/transaction-context.js +0 -15
- package/dist/drizzle/transaction-context.js.map +0 -1
- package/dist/drizzle/transactional.decorator.d.ts +0 -3
- package/dist/drizzle/transactional.decorator.d.ts.map +0 -1
- package/dist/drizzle/transactional.decorator.js +0 -15
- package/dist/drizzle/transactional.decorator.js.map +0 -1
- package/dist/drizzle/transactional.drizzle.d.ts.map +0 -1
- package/dist/drizzle/transactional.drizzle.js.map +0 -1
- package/dist/prisma/index.d.ts +0 -3
- package/dist/prisma/index.d.ts.map +0 -1
- package/dist/prisma/index.js +0 -3
- package/dist/prisma/index.js.map +0 -1
- package/dist/prisma/prisma.client.d.ts +0 -2
- package/dist/prisma/prisma.client.d.ts.map +0 -1
- package/dist/prisma/prisma.client.js +0 -13
- package/dist/prisma/prisma.client.js.map +0 -1
- package/dist/prisma/transactional.decorator.d.ts +0 -2
- package/dist/prisma/transactional.decorator.d.ts.map +0 -1
- package/dist/prisma/transactional.decorator.js +0 -3
- package/dist/prisma/transactional.decorator.js.map +0 -1
- package/dist/schema-builder.d.ts +0 -7
- package/dist/schema-builder.d.ts.map +0 -1
- package/dist/schema-builder.js +0 -32
- package/dist/schema-builder.js.map +0 -1
- package/dist/schema-builder.types.d.ts +0 -8
- package/dist/schema-builder.types.d.ts.map +0 -1
- package/dist/schema-builder.types.js +0 -2
- package/dist/schema-builder.types.js.map +0 -1
- package/dist/utils/uuid-v7.d.ts +0 -2
- package/dist/utils/uuid-v7.d.ts.map +0 -1
- package/dist/utils/uuid-v7.js +0 -2
- package/dist/utils/uuid-v7.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
export type { AuditActorReader } from './audit.context.js';
|
|
2
2
|
export { currentAuditActor, registerAuditActor, } from './audit.context.js';
|
|
3
3
|
export { DATABASE_SERVICE } from './database.constants.js';
|
|
4
|
-
export { defineDatabaseRelations, defineDatabaseSchema, } from './database.helpers.js';
|
|
4
|
+
export { defineDatabaseRelations, defineDatabaseSchema, defineDynamoDatabaseSchema, } from './database.helpers.js';
|
|
5
5
|
export { DatabaseModule } from './database.module.js';
|
|
6
6
|
export { DatabaseService } from './database.service.js';
|
|
7
|
-
export type { DatabaseModuleOptions,
|
|
8
|
-
export
|
|
9
|
-
export {
|
|
10
|
-
export
|
|
11
|
-
export type {
|
|
12
|
-
export {
|
|
13
|
-
export type {
|
|
14
|
-
export { Transactional } from './drizzle/transactional.drizzle.js';
|
|
7
|
+
export type { DatabaseModuleOptions, DatabaseServiceRegistry, InferDatabaseConfig, InferDynamoDatabaseConfig, } from './database.types.js';
|
|
8
|
+
export { getCurrentTx, onAfterCommit, onBeforeCommit, transactionState, } from './transaction.context.js';
|
|
9
|
+
export type { IsolationLevel } from './transactional.js';
|
|
10
|
+
export { Transactional } from './transactional.js';
|
|
11
|
+
export type { MaterializeSchema } from './drizzle/schema-builder.drizzle.js';
|
|
12
|
+
export type { ColumnMap, PgSchemaBuilder, RelationsHelpers, } from './drizzle/schema-builder.types.drizzle.js';
|
|
13
|
+
export type { DynamoAttribute, DynamoIndexes, DynamoSchemaBuilder, DynamoTableDefinition, DynamoTableMap, } from './dynamodb/schema-builder.types.dynamodb.js';
|
|
15
14
|
export { RecordNotCreatedError, RecordNotFoundError, } from './repository/table-repository.errors.js';
|
|
16
|
-
export { TableRepository } from './repository/table-repository.js';
|
|
17
|
-
export type { CountOptions, CreateInput, CreateOptions, DeleteOptions, ExistsOptions, FindByIdOptions, FullTableRepository, InferRepositories, InferReturning, PrimaryKeyInput, ReturningColumns, TableRepositoryMethods, UpdateByIdOptions, UpdateInput, UpdateOptions, UpsertOptions, WhereCallback, WhereInput, WhereOperators, } from './repository/table-repository.types.js';
|
|
18
15
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EACN,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,YAAY,EACX,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,GAChB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAelD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,YAAY,EACX,SAAS,EACT,eAAe,EACf,gBAAgB,GAChB,MAAM,2CAA2C,CAAA;AAClD,YAAY,EACX,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACd,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACN,qBAAqB,EACrB,mBAAmB,GACnB,MAAM,yCAAyC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
export { currentAuditActor, registerAuditActor, } from './audit.context.js';
|
|
2
2
|
export { DATABASE_SERVICE } from './database.constants.js';
|
|
3
|
-
export { defineDatabaseRelations, defineDatabaseSchema, } from './database.helpers.js';
|
|
3
|
+
export { defineDatabaseRelations, defineDatabaseSchema, defineDynamoDatabaseSchema, } from './database.helpers.js';
|
|
4
4
|
export { DatabaseModule } from './database.module.js';
|
|
5
5
|
export { DatabaseService } from './database.service.js';
|
|
6
|
-
export {
|
|
7
|
-
export {
|
|
8
|
-
export { Transactional } from './drizzle/transactional.drizzle.js';
|
|
6
|
+
export { getCurrentTx, onAfterCommit, onBeforeCommit, transactionState, } from './transaction.context.js';
|
|
7
|
+
export { Transactional } from './transactional.js';
|
|
9
8
|
export { RecordNotCreatedError, RecordNotFoundError, } from './repository/table-repository.errors.js';
|
|
10
|
-
export { TableRepository } from './repository/table-repository.js';
|
|
11
9
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAOvD,OAAO,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,GAChB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AA4BlD,OAAO,EACN,qBAAqB,EACrB,mBAAmB,GACnB,MAAM,yCAAyC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgresql.d.ts","sourceRoot":"","sources":["../src/postgresql.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postgresql.js","sourceRoot":"","sources":["../src/postgresql.ts"],"names":[],"mappings":"AAiBA,OAAO,EACN,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
-
import type {
|
|
2
|
+
import type { IDatabaseAdapter } from './database.adapter.interface.js';
|
|
3
|
+
import type { ResolvedDatabase } from './database.types.js';
|
|
3
4
|
export declare const transactionStorage: AsyncLocalStorage<unknown>;
|
|
4
5
|
export declare function getCurrentTx(): ResolvedDatabase | undefined;
|
|
5
6
|
export type BeforeCommitHook = (tx: ResolvedDatabase) => Promise<void> | void;
|
|
@@ -10,6 +11,12 @@ export declare function transactionState<T>(key: symbol, create: () => T): T | u
|
|
|
10
11
|
export type AfterCommitHook = () => Promise<void> | void;
|
|
11
12
|
export declare const afterCommitStorage: AsyncLocalStorage<AfterCommitHook[]>;
|
|
12
13
|
export declare function onAfterCommit(hook: AfterCommitHook): boolean;
|
|
13
|
-
|
|
14
|
+
type RegisteredEngine = {
|
|
15
|
+
adapter: IDatabaseAdapter;
|
|
16
|
+
client: unknown;
|
|
17
|
+
};
|
|
18
|
+
export declare function registerEngine(engine: RegisteredEngine): void;
|
|
19
|
+
export declare function getEngine(): RegisteredEngine;
|
|
14
20
|
export declare function getDb(): ResolvedDatabase;
|
|
15
|
-
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=transaction.context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transaction.context.d.ts","sourceRoot":"","sources":["../src/transaction.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAEpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,eAAO,MAAM,kBAAkB,4BAA4C,CAAA;AAE3E,wBAAgB,YAAY,IAAI,gBAAgB,GAAG,SAAS,CAE3D;AAGD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAS7E,eAAO,MAAM,mBAAmB,uCAA8C,CAAA;AAa9E,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAU9D;AAGD,eAAO,MAAM,uBAAuB,yCAEjC,CAAA;AAYH,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,GACb,CAAC,GAAG,SAAS,CAYf;AAGD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAGxD,eAAO,MAAM,kBAAkB,sCAA6C,CAAA;AAY5E,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAU5D;AAWD,KAAK,gBAAgB,GAAG;IACvB,OAAO,EAAE,gBAAgB,CAAA;IACzB,MAAM,EAAE,OAAO,CAAA;CACf,CAAA;AAID,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAE7D;AAED,wBAAgB,SAAS,IAAI,gBAAgB,CAQ5C;AAGD,wBAAgB,KAAK,IAAI,gBAAgB,CAExC"}
|
|
@@ -32,14 +32,17 @@ export function onAfterCommit(hook) {
|
|
|
32
32
|
hooks.push(hook);
|
|
33
33
|
return true;
|
|
34
34
|
}
|
|
35
|
-
let
|
|
36
|
-
export function
|
|
37
|
-
|
|
35
|
+
let _engine;
|
|
36
|
+
export function registerEngine(engine) {
|
|
37
|
+
_engine = engine;
|
|
38
38
|
}
|
|
39
|
-
export function
|
|
40
|
-
if (!
|
|
41
|
-
throw new Error('[DatabaseModule]
|
|
39
|
+
export function getEngine() {
|
|
40
|
+
if (!_engine) {
|
|
41
|
+
throw new Error('[DatabaseModule] engine not initialized — was DatabaseModule.register() called?');
|
|
42
42
|
}
|
|
43
|
-
return
|
|
43
|
+
return _engine;
|
|
44
|
+
}
|
|
45
|
+
export function getDb() {
|
|
46
|
+
return getEngine().client;
|
|
44
47
|
}
|
|
45
|
-
//# sourceMappingURL=transaction
|
|
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
|
-
|
|
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.
|
|
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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { afterCommitStorage, beforeCommitStorage, getCurrentTx,
|
|
1
|
+
import { afterCommitStorage, beforeCommitStorage, getCurrentTx, getEngine, transactionStateStorage, transactionStorage, } from './transaction.context.js';
|
|
2
2
|
export function Transactional(isolationLevel) {
|
|
3
3
|
return (_target, _propertyKey, descriptor) => {
|
|
4
4
|
const original = descriptor.value;
|
|
@@ -6,7 +6,7 @@ export function Transactional(isolationLevel) {
|
|
|
6
6
|
if (getCurrentTx() !== undefined) {
|
|
7
7
|
return original.apply(this, args);
|
|
8
8
|
}
|
|
9
|
-
const
|
|
9
|
+
const engine = getEngine();
|
|
10
10
|
const before = [];
|
|
11
11
|
const after = [];
|
|
12
12
|
const state = new Map();
|
|
@@ -17,11 +17,12 @@ export function Transactional(isolationLevel) {
|
|
|
17
17
|
}
|
|
18
18
|
return value;
|
|
19
19
|
};
|
|
20
|
-
const
|
|
20
|
+
const options = isolationLevel
|
|
21
21
|
? {
|
|
22
22
|
isolationLevel,
|
|
23
23
|
}
|
|
24
|
-
: undefined
|
|
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);
|
|
25
26
|
for (const hook of after) {
|
|
26
27
|
try {
|
|
27
28
|
await hook();
|
|
@@ -34,4 +35,4 @@ export function Transactional(isolationLevel) {
|
|
|
34
35
|
return descriptor;
|
|
35
36
|
};
|
|
36
37
|
}
|
|
37
|
-
//# sourceMappingURL=transactional.
|
|
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,8 @@
|
|
|
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)
|
|
3
|
+
"description": "Typed database module for NestJS: schema builder, per-table repositories, and transactional decorator. PostgreSQL (Drizzle) and DynamoDB adapters.",
|
|
4
4
|
"private": false,
|
|
5
|
-
"version": "1.0
|
|
5
|
+
"version": "2.1.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"main": "./dist/index.js",
|
|
@@ -13,6 +13,16 @@
|
|
|
13
13
|
"types": "./dist/index.d.ts",
|
|
14
14
|
"import": "./dist/index.js",
|
|
15
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"
|
|
16
26
|
}
|
|
17
27
|
},
|
|
18
28
|
"publishConfig": {
|
|
@@ -29,6 +39,8 @@
|
|
|
29
39
|
"url": "https://github.com/turystack/nestjs-database.git"
|
|
30
40
|
},
|
|
31
41
|
"peerDependencies": {
|
|
42
|
+
"@aws-sdk/client-dynamodb": "^3.0.0",
|
|
43
|
+
"@aws-sdk/lib-dynamodb": "^3.0.0",
|
|
32
44
|
"@nestjs/common": "^11.0.0",
|
|
33
45
|
"@nestjs/core": "^11.0.0",
|
|
34
46
|
"@turystack/exceptions": "^1.0.0",
|
|
@@ -39,6 +51,15 @@
|
|
|
39
51
|
"uuidv7": "^1.2.1"
|
|
40
52
|
},
|
|
41
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
|
+
},
|
|
42
63
|
"pg": {
|
|
43
64
|
"optional": true
|
|
44
65
|
}
|
|
@@ -65,12 +86,15 @@
|
|
|
65
86
|
},
|
|
66
87
|
"scripts": {
|
|
67
88
|
"build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
68
|
-
"
|
|
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",
|
|
69
95
|
"test": "vitest run",
|
|
70
96
|
"test:cov": "vitest run --coverage",
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"check": "biome check ./src",
|
|
74
|
-
"check:fix": "biome check --write ./src"
|
|
97
|
+
"test:e2e": "vitest run --config vitest.e2e.config.ts",
|
|
98
|
+
"typecheck": "tsc --noEmit"
|
|
75
99
|
}
|
|
76
100
|
}
|
package/dist/drizzle/client.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { DatabaseModuleOptions } from '../database.types.js';
|
|
2
|
-
type AnyDb = any;
|
|
3
|
-
type AnyTx = any;
|
|
4
|
-
export interface AdapterStrategy {
|
|
5
|
-
runTransaction(db: AnyDb, fn: (tx: AnyTx) => Promise<unknown>, isolationLevel?: string): Promise<unknown>;
|
|
6
|
-
}
|
|
7
|
-
export declare function createDrizzleClient(options: DatabaseModuleOptions): {
|
|
8
|
-
db: AnyDb;
|
|
9
|
-
strategy: AdapterStrategy;
|
|
10
|
-
};
|
|
11
|
-
export {};
|
|
12
|
-
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/drizzle/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAGhE,KAAK,KAAK,GAAG,GAAG,CAAA;AAEhB,KAAK,KAAK,GAAG,GAAG,CAAA;AAEhB,MAAM,WAAW,eAAe;IAC9B,cAAc,CACZ,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,EACnC,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,OAAO,CAAC,CAAA;CACpB;AAkCD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG;IACnE,EAAE,EAAE,KAAK,CAAA;IACT,QAAQ,EAAE,eAAe,CAAA;CAC1B,CAoBA"}
|
package/dist/drizzle/client.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
class PostgresqlStrategy {
|
|
2
|
-
async runTransaction(db, fn, isolationLevel) {
|
|
3
|
-
return db.transaction(fn, isolationLevel ? { isolationLevel } : undefined);
|
|
4
|
-
}
|
|
5
|
-
}
|
|
6
|
-
class MysqlStrategy {
|
|
7
|
-
async runTransaction(db, fn, isolationLevel) {
|
|
8
|
-
return db.transaction(fn, isolationLevel ? { isolationLevel } : undefined);
|
|
9
|
-
}
|
|
10
|
-
}
|
|
11
|
-
class SqliteStrategy {
|
|
12
|
-
async runTransaction(db, fn, isolationLevel) {
|
|
13
|
-
const behavior = isolationLevel;
|
|
14
|
-
return db.transaction(fn, behavior ? { behavior } : undefined);
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
export function createDrizzleClient(options) {
|
|
18
|
-
switch (options.adapter) {
|
|
19
|
-
case 'postgresql': {
|
|
20
|
-
const { drizzle } = require('drizzle-orm/node-postgres');
|
|
21
|
-
return { db: drizzle(options.postgresql.url), strategy: new PostgresqlStrategy() };
|
|
22
|
-
}
|
|
23
|
-
case 'mysql': {
|
|
24
|
-
const { drizzle } = require('drizzle-orm/mysql2');
|
|
25
|
-
return { db: drizzle(options.mysql.url), strategy: new MysqlStrategy() };
|
|
26
|
-
}
|
|
27
|
-
case 'sqlite': {
|
|
28
|
-
const { drizzle } = require('drizzle-orm/better-sqlite3');
|
|
29
|
-
const Database = require('better-sqlite3');
|
|
30
|
-
return { db: drizzle(new Database(options.sqlite.url)), strategy: new SqliteStrategy() };
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/drizzle/client.ts"],"names":[],"mappings":"AAeA,MAAM,kBAAkB;IACtB,KAAK,CAAC,cAAc,CAClB,EAAS,EACT,EAAmC,EACnC,cAAuB;QAEvB,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC5E,CAAC;CACF;AAED,MAAM,aAAa;IACjB,KAAK,CAAC,cAAc,CAClB,EAAS,EACT,EAAmC,EACnC,cAAuB;QAEvB,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAC5E,CAAC;CACF;AAED,MAAM,cAAc;IAClB,KAAK,CAAC,cAAc,CAClB,EAAS,EACT,EAAmC,EACnC,cAAuB;QAGvB,MAAM,QAAQ,GAAG,cAAoE,CAAA;QACrF,OAAO,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;IAChE,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA8B;IAIhE,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,KAAK,YAAY,CAAC,CAAC,CAAC;YAElB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,2BAA2B,CAAQ,CAAA;YAC/D,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,kBAAkB,EAAE,EAAE,CAAA;QACpF,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YAEb,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAQ,CAAA;YACxD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,aAAa,EAAE,EAAE,CAAA;QAC1E,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YAEd,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAQ,CAAA;YAEhE,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAQ,CAAA;YACjD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,cAAc,EAAE,EAAE,CAAA;QAC1F,CAAC;IACH,CAAC;AACH,CAAC"}
|
package/dist/drizzle/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sCAAsC,CAAA"}
|
package/dist/drizzle/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/drizzle/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,kCAAkC,CAAA;AAChD,cAAc,sCAAsC,CAAA"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from 'node:async_hooks';
|
|
2
|
-
type AnyTx = any;
|
|
3
|
-
type AnyDb = any;
|
|
4
|
-
export declare const transactionStorage: AsyncLocalStorage<any>;
|
|
5
|
-
export declare function getCurrentTx(): AnyTx | undefined;
|
|
6
|
-
export declare function registerDb(db: AnyDb): void;
|
|
7
|
-
export declare function getDb(): AnyDb;
|
|
8
|
-
export {};
|
|
9
|
-
//# sourceMappingURL=transaction-context.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-context.d.ts","sourceRoot":"","sources":["../../src/drizzle/transaction-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAGpD,KAAK,KAAK,GAAG,GAAG,CAAA;AAEhB,KAAK,KAAK,GAAG,GAAG,CAAA;AAEhB,eAAO,MAAM,kBAAkB,wBAAiC,CAAA;AAEhE,wBAAgB,YAAY,IAAI,KAAK,GAAG,SAAS,CAEhD;AAID,wBAAgB,UAAU,CAAC,EAAE,EAAE,KAAK,GAAG,IAAI,CAE1C;AAED,wBAAgB,KAAK,IAAI,KAAK,CAG7B"}
|
|
@@ -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,4BAA4C,CAAA;AAE3E,wBAAgB,YAAY,IAAI,gBAAgB,GAAG,SAAS,CAE3D;AAGD,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAAE,EAAE,gBAAgB,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAS7E,eAAO,MAAM,mBAAmB,uCAA8C,CAAA;AAa9E,wBAAgB,cAAc,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAU9D;AAGD,eAAO,MAAM,uBAAuB,yCAEjC,CAAA;AAYH,wBAAgB,gBAAgB,CAAC,CAAC,EACjC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,CAAC,GACb,CAAC,GAAG,SAAS,CAYf;AAGD,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAGxD,eAAO,MAAM,kBAAkB,sCAA6C,CAAA;AAY5E,wBAAgB,aAAa,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAU5D;AAID,wBAAgB,UAAU,CAAC,EAAE,EAAE,gBAAgB,GAAG,IAAI,CAErD;AAED,wBAAgB,KAAK,IAAI,gBAAgB,CAQxC"}
|
|
@@ -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,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;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,15 +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
|
-
return _db;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=transaction-context.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transaction-context.js","sourceRoot":"","sources":["../../src/drizzle/transaction-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAA;AAOpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAS,CAAA;AAEhE,MAAM,UAAU,YAAY;IAC1B,OAAO,kBAAkB,CAAC,QAAQ,EAAE,CAAA;AACtC,CAAC;AAED,IAAI,GAAsB,CAAA;AAE1B,MAAM,UAAU,UAAU,CAAC,EAAS;IAClC,GAAG,GAAG,EAAE,CAAA;AACV,CAAC;AAED,MAAM,UAAU,KAAK;IACnB,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,6EAA6E,CAAC,CAAA;IACxG,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export type IsolationLevel = 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable' | 'deferred' | 'immediate' | 'exclusive';
|
|
2
|
-
export declare function Transactional(isolationLevel?: IsolationLevel): (_target: object, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
3
|
-
//# sourceMappingURL=transactional.decorator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactional.decorator.d.ts","sourceRoot":"","sources":["../../src/drizzle/transactional.decorator.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,cAAc,GACtB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,GACd,UAAU,GACV,WAAW,GACX,WAAW,CAAA;AAEf,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,cAAc,IAEzD,SAAS,MAAM,EACf,cAAc,MAAM,GAAG,MAAM,EAC7B,YAAY,kBAAkB,KAC7B,kBAAkB,CAkBtB"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { getCurrentTx, getDb, transactionStorage } from '../drizzle/transaction-context.js';
|
|
2
|
-
export function Transactional(isolationLevel) {
|
|
3
|
-
return function (_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 ? { isolationLevel } : undefined);
|
|
11
|
-
};
|
|
12
|
-
return descriptor;
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=transactional.decorator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactional.decorator.js","sourceRoot":"","sources":["../../src/drizzle/transactional.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAA;AAW1F,MAAM,UAAU,aAAa,CAAC,cAA+B;IAC3D,OAAO,UACL,OAAe,EACf,YAA6B,EAC7B,UAA8B;QAE9B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAiD,CAAA;QAE7E,UAAU,CAAC,KAAK,GAAG,KAAK,WAA0B,GAAG,IAAe;YAClE,IAAI,YAAY,EAAE,KAAK,SAAS,EAAE,CAAC;gBACjC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YACnC,CAAC;YAED,MAAM,EAAE,GAAG,KAAK,EAAE,CAAA;YAElB,OAAO,EAAE,CAAC,WAAW,CACnB,CAAC,EAAW,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,EAC7E,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAChD,CAAA;QACH,CAAC,CAAA;QAED,OAAO,UAAU,CAAA;IACnB,CAAC,CAAA;AACH,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactional.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/transactional.drizzle.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,cAAc,GACvB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,CAAA;AAEjB,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,cAAc,aAElD,MAAM,gBACD,MAAM,GAAG,MAAM,cACjB,kBAAkB,KAC5B,kBAAkB,CAmErB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactional.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/transactional.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,kBAAkB,EAElB,mBAAmB,EACnB,YAAY,EACZ,KAAK,EACL,uBAAuB,EACvB,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,EAOf,CAAA;YAED,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,MAAM,GAAG,MAAM,EAAE,CAAC,WAAW,CAClC,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,cAAc;gBACb,CAAC,CAAC;oBACA,cAAc;iBACd;gBACF,CAAC,CAAC,SAAS,CACZ,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/dist/prisma/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prisma/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA"}
|
package/dist/prisma/index.js
DELETED
package/dist/prisma/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prisma/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.client.d.ts","sourceRoot":"","sources":["../../src/prisma/prisma.client.ts"],"names":[],"mappings":"AAUA,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,OAcrD"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { patchPrismaTx } from '@myfunc/prisma-transactional';
|
|
2
|
-
import { PrismaPg } from '@prisma/adapter-pg';
|
|
3
|
-
export function createPrismaClient(databaseUrl) {
|
|
4
|
-
const { PrismaClient } = require('@prisma/client');
|
|
5
|
-
const adapter = new PrismaPg({
|
|
6
|
-
connectionString: databaseUrl,
|
|
7
|
-
});
|
|
8
|
-
const client = new PrismaClient({
|
|
9
|
-
adapter,
|
|
10
|
-
});
|
|
11
|
-
return patchPrismaTx(client);
|
|
12
|
-
}
|
|
13
|
-
//# sourceMappingURL=prisma.client.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"prisma.client.js","sourceRoot":"","sources":["../../src/prisma/prisma.client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAS7C,MAAM,UAAU,kBAAkB,CAAC,WAAmB;IAGpD,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAElD,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC;QAC3B,gBAAgB,EAAE,WAAW;KAC9B,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC9B,OAAO;KACR,CAAC,CAAA;IAEF,OAAO,aAAa,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactional.decorator.d.ts","sourceRoot":"","sources":["../../src/prisma/transactional.decorator.ts"],"names":[],"mappings":"AAoBA,eAAO,MAAM,aAAa,GAAI,iBAAiB,MAAM,oBAChB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"transactional.decorator.js","sourceRoot":"","sources":["../../src/prisma/transactional.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAA;AAoBlE,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,cAAuB,EAAE,EAAE,CACvD,mBAAmB,CAAC,cAAc,CAAC,CAAA"}
|
package/dist/schema-builder.d.ts
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { DatabaseAdapter } from './database.types.js';
|
|
2
|
-
import type { SchemaBuilder, SchemaResolverResult } from './schema-builder.types.js';
|
|
3
|
-
export declare function createSchemaBuilder(): SchemaBuilder;
|
|
4
|
-
type AnyTable = any;
|
|
5
|
-
export declare function materializeSchema(adapter: DatabaseAdapter, resolverResult: SchemaResolverResult): Record<string, AnyTable>;
|
|
6
|
-
export {};
|
|
7
|
-
//# sourceMappingURL=schema-builder.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-builder.d.ts","sourceRoot":"","sources":["../src/schema-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAEX,aAAa,EACb,oBAAoB,EACpB,MAAM,2BAA2B,CAAA;AAElC,wBAAgB,mBAAmB,IAAI,aAAa,CAUnD;AAGD,KAAK,QAAQ,GAAG,GAAG,CAAA;AA2BnB,wBAAgB,iBAAiB,CAChC,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,oBAAoB,GAClC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAO1B"}
|
package/dist/schema-builder.js
DELETED
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export function createSchemaBuilder() {
|
|
2
|
-
return {
|
|
3
|
-
table(columns) {
|
|
4
|
-
return {
|
|
5
|
-
__columns: columns,
|
|
6
|
-
};
|
|
7
|
-
},
|
|
8
|
-
};
|
|
9
|
-
}
|
|
10
|
-
function createTable(adapter, tableName, columns) {
|
|
11
|
-
switch (adapter) {
|
|
12
|
-
case 'postgresql': {
|
|
13
|
-
const { pgTable } = require('drizzle-orm/pg-core');
|
|
14
|
-
return pgTable(tableName, columns);
|
|
15
|
-
}
|
|
16
|
-
case 'mysql': {
|
|
17
|
-
const { mysqlTable } = require('drizzle-orm/mysql-core');
|
|
18
|
-
return mysqlTable(tableName, columns);
|
|
19
|
-
}
|
|
20
|
-
case 'sqlite': {
|
|
21
|
-
const { sqliteTable } = require('drizzle-orm/sqlite-core');
|
|
22
|
-
return sqliteTable(tableName, columns);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
export function materializeSchema(adapter, resolverResult) {
|
|
27
|
-
return Object.fromEntries(Object.entries(resolverResult).map(([tableName, columnMap]) => {
|
|
28
|
-
const columns = columnMap.__columns;
|
|
29
|
-
return [tableName, createTable(adapter, tableName, columns)];
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=schema-builder.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-builder.js","sourceRoot":"","sources":["../src/schema-builder.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB;IAClC,OAAO;QACN,KAAK,CACJ,OAAiB;YAEjB,OAAO;gBACN,SAAS,EAAE,OAAO;aAClB,CAAA;QACF,CAAC;KACD,CAAA;AACF,CAAC;AAKD,SAAS,WAAW,CACnB,OAAwB,EACxB,SAAiB,EAEjB,OAA4B;IAE5B,QAAQ,OAAO,EAAE,CAAC;QACjB,KAAK,YAAY,CAAC,CAAC,CAAC;YAEnB,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,qBAAqB,CAAQ,CAAA;YACzD,OAAO,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACnC,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YAEd,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,wBAAwB,CAAQ,CAAA;YAC/D,OAAO,UAAU,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACtC,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YAEf,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,yBAAyB,CAAQ,CAAA;YACjE,OAAO,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QACvC,CAAC;IACF,CAAC;AACF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAChC,OAAwB,EACxB,cAAoC;IAEpC,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE;QAC7D,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAA;QACnC,OAAO,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IAC7D,CAAC,CAAC,CACF,CAAA;AACF,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export type ColumnMap<TColumns extends Record<string, unknown>> = {
|
|
2
|
-
readonly __columns: TColumns;
|
|
3
|
-
};
|
|
4
|
-
export interface SchemaBuilder {
|
|
5
|
-
table<TColumns extends Record<string, unknown>>(columns: TColumns): ColumnMap<TColumns>;
|
|
6
|
-
}
|
|
7
|
-
export type SchemaResolverResult = Record<string, ColumnMap<Record<string, unknown>>>;
|
|
8
|
-
//# sourceMappingURL=schema-builder.types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-builder.types.d.ts","sourceRoot":"","sources":["../src/schema-builder.types.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,SAAS,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IACjE,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAA;CAC5B,CAAA;AAED,MAAM,WAAW,aAAa;IAC7B,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7C,OAAO,EAAE,QAAQ,GACf,SAAS,CAAC,QAAQ,CAAC,CAAA;CACtB;AAED,MAAM,MAAM,oBAAoB,GAAG,MAAM,CACxC,MAAM,EACN,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAClC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-builder.types.js","sourceRoot":"","sources":["../src/schema-builder.types.ts"],"names":[],"mappings":""}
|
package/dist/utils/uuid-v7.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uuid-v7.d.ts","sourceRoot":"","sources":["../../src/utils/uuid-v7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA"}
|
package/dist/utils/uuid-v7.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uuid-v7.js","sourceRoot":"","sources":["../../src/utils/uuid-v7.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA"}
|