@turystack/nestjs-database 0.0.1
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/database.constants.d.ts +2 -0
- package/dist/database.constants.d.ts.map +1 -0
- package/dist/database.constants.js +2 -0
- package/dist/database.constants.js.map +1 -0
- package/dist/database.module.d.ts +8 -0
- package/dist/database.module.d.ts.map +1 -0
- package/dist/database.module.js +44 -0
- package/dist/database.module.js.map +1 -0
- package/dist/database.service.d.ts +10 -0
- package/dist/database.service.d.ts.map +1 -0
- package/dist/database.service.js +29 -0
- package/dist/database.service.js.map +1 -0
- package/dist/database.types.d.ts +22 -0
- package/dist/database.types.d.ts.map +1 -0
- package/dist/database.types.js +2 -0
- package/dist/database.types.js.map +1 -0
- package/dist/drizzle/client.d.ts +12 -0
- package/dist/drizzle/client.d.ts.map +1 -0
- package/dist/drizzle/client.drizzle.d.ts +12 -0
- package/dist/drizzle/client.drizzle.d.ts.map +1 -0
- package/dist/drizzle/client.drizzle.js +37 -0
- package/dist/drizzle/client.drizzle.js.map +1 -0
- package/dist/drizzle/client.js +34 -0
- package/dist/drizzle/client.js.map +1 -0
- package/dist/drizzle/index.d.ts +4 -0
- package/dist/drizzle/index.d.ts.map +1 -0
- package/dist/drizzle/index.js +4 -0
- package/dist/drizzle/index.js.map +1 -0
- package/dist/drizzle/schema-builder.drizzle.d.ts +7 -0
- package/dist/drizzle/schema-builder.drizzle.d.ts.map +1 -0
- package/dist/drizzle/schema-builder.drizzle.js +30 -0
- package/dist/drizzle/schema-builder.drizzle.js.map +1 -0
- package/dist/drizzle/schema-builder.types.drizzle.d.ts +8 -0
- package/dist/drizzle/schema-builder.types.drizzle.d.ts.map +1 -0
- package/dist/drizzle/schema-builder.types.drizzle.js +2 -0
- package/dist/drizzle/schema-builder.types.drizzle.js.map +1 -0
- package/dist/drizzle/transaction-context.d.ts +9 -0
- package/dist/drizzle/transaction-context.d.ts.map +1 -0
- package/dist/drizzle/transaction-context.drizzle.d.ts +9 -0
- package/dist/drizzle/transaction-context.drizzle.d.ts.map +1 -0
- package/dist/drizzle/transaction-context.drizzle.js +15 -0
- package/dist/drizzle/transaction-context.drizzle.js.map +1 -0
- package/dist/drizzle/transaction-context.js +15 -0
- package/dist/drizzle/transaction-context.js.map +1 -0
- package/dist/drizzle/transactional.decorator.d.ts +3 -0
- package/dist/drizzle/transactional.decorator.d.ts.map +1 -0
- package/dist/drizzle/transactional.decorator.js +15 -0
- package/dist/drizzle/transactional.decorator.js.map +1 -0
- package/dist/drizzle/transactional.drizzle.d.ts +3 -0
- package/dist/drizzle/transactional.drizzle.d.ts.map +1 -0
- package/dist/drizzle/transactional.drizzle.js +15 -0
- package/dist/drizzle/transactional.drizzle.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/prisma/index.d.ts +3 -0
- package/dist/prisma/index.d.ts.map +1 -0
- package/dist/prisma/index.js +3 -0
- package/dist/prisma/index.js.map +1 -0
- package/dist/prisma/prisma.client.d.ts +2 -0
- package/dist/prisma/prisma.client.d.ts.map +1 -0
- package/dist/prisma/prisma.client.js +13 -0
- package/dist/prisma/prisma.client.js.map +1 -0
- package/dist/prisma/transactional.decorator.d.ts +2 -0
- package/dist/prisma/transactional.decorator.d.ts.map +1 -0
- package/dist/prisma/transactional.decorator.js +3 -0
- package/dist/prisma/transactional.decorator.js.map +1 -0
- package/dist/schema-builder.d.ts +7 -0
- package/dist/schema-builder.d.ts.map +1 -0
- package/dist/schema-builder.js +32 -0
- package/dist/schema-builder.js.map +1 -0
- package/dist/schema-builder.types.d.ts +8 -0
- package/dist/schema-builder.types.d.ts.map +1 -0
- package/dist/schema-builder.types.js +2 -0
- package/dist/schema-builder.types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.constants.d.ts","sourceRoot":"","sources":["../src/database.constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,eAA6B,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.constants.js","sourceRoot":"","sources":["../src/database.constants.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type DynamicModule } from '@nestjs/common';
|
|
2
|
+
import type { DatabaseModuleOptions } from './database.types.js';
|
|
3
|
+
import type { SchemaResolverResult } from './drizzle/schema-builder.types.drizzle.js';
|
|
4
|
+
export declare class DatabaseModule {
|
|
5
|
+
static register<TResult extends SchemaResolverResult>(options: DatabaseModuleOptions<TResult>): DynamicModule;
|
|
6
|
+
private static _resolveProviders;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=database.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.module.d.ts","sourceRoot":"","sources":["../src/database.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAyB,MAAM,gBAAgB,CAAA;AAI1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAOhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAGrF,qBACa,cAAc;IAC1B,MAAM,CAAC,QAAQ,CAAC,OAAO,SAAS,oBAAoB,EACnD,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,GACrC,aAAa;IAUhB,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAmBhC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var DatabaseModule_1;
|
|
8
|
+
import { Module } from '@nestjs/common';
|
|
9
|
+
import { DATABASE_SERVICE } from './database.constants.js';
|
|
10
|
+
import { DatabaseService } from './database.service.js';
|
|
11
|
+
import { createDrizzleClient } from './drizzle/client.drizzle.js';
|
|
12
|
+
import { createSchemaBuilder, materializeSchema, } from './drizzle/schema-builder.drizzle.js';
|
|
13
|
+
import { registerDb } from './drizzle/transaction-context.drizzle.js';
|
|
14
|
+
let DatabaseModule = DatabaseModule_1 = class DatabaseModule {
|
|
15
|
+
static register(options) {
|
|
16
|
+
return {
|
|
17
|
+
exports: [
|
|
18
|
+
DATABASE_SERVICE,
|
|
19
|
+
],
|
|
20
|
+
module: DatabaseModule_1,
|
|
21
|
+
providers: DatabaseModule_1._resolveProviders(options),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
static _resolveProviders(options) {
|
|
25
|
+
return [
|
|
26
|
+
{
|
|
27
|
+
provide: DATABASE_SERVICE,
|
|
28
|
+
useFactory: () => {
|
|
29
|
+
const { db, strategy } = createDrizzleClient(options);
|
|
30
|
+
registerDb(db);
|
|
31
|
+
const builder = createSchemaBuilder();
|
|
32
|
+
const resolverResult = options.schemaResolver(builder);
|
|
33
|
+
const schema = materializeSchema(options.adapter, resolverResult);
|
|
34
|
+
return new DatabaseService(db, schema, strategy);
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
DatabaseModule = DatabaseModule_1 = __decorate([
|
|
41
|
+
Module({})
|
|
42
|
+
], DatabaseModule);
|
|
43
|
+
export { DatabaseModule };
|
|
44
|
+
//# sourceMappingURL=database.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.module.js","sourceRoot":"","sources":["../src/database.module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAsB,MAAM,EAAiB,MAAM,gBAAgB,CAAA;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAGvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACN,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,qCAAqC,CAAA;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAG9D,IAAM,cAAc,sBAApB,MAAM,cAAc;IAC1B,MAAM,CAAC,QAAQ,CACd,OAAuC;QAEvC,OAAO;YACN,OAAO,EAAE;gBACR,gBAAgB;aAChB;YACD,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE,gBAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC;SACpD,CAAA;IACF,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAC/B,OAAuC;QAEvC,OAAO;YACN;gBACC,OAAO,EAAE,gBAAgB;gBACzB,UAAU,EAAE,GAAG,EAAE;oBAChB,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAA;oBACrD,UAAU,CAAC,EAAE,CAAC,CAAA;oBAEd,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAA;oBACrC,MAAM,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;oBACtD,MAAM,MAAM,GAAG,iBAAiB,CAAC,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;oBAEjE,OAAO,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;gBACjD,CAAC;aACD;SACD,CAAA;IACF,CAAC;CACD,CAAA;AAhCY,cAAc;IAD1B,MAAM,CAAC,EAAE,CAAC;GACE,cAAc,CAgC1B"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { AdapterStrategy } from './drizzle/client.drizzle.js';
|
|
2
|
+
type AnyDb = any;
|
|
3
|
+
export declare class DatabaseService<TSchema extends Record<string, unknown> = Record<string, unknown>> {
|
|
4
|
+
private readonly _db;
|
|
5
|
+
readonly _strategy: AdapterStrategy;
|
|
6
|
+
constructor(db: AnyDb, schema: TSchema, strategy: AdapterStrategy);
|
|
7
|
+
get db(): AnyDb;
|
|
8
|
+
}
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=database.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.service.d.ts","sourceRoot":"","sources":["../src/database.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAIlE,KAAK,KAAK,GAAG,GAAG,CAAA;AAyBhB,qBACa,eAAe,CAC3B,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEjE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAO;IAC3B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;gBAEvB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe;IAUjE,IAAI,EAAE,IAAI,KAAK,CAEd;CACD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { Injectable } from '@nestjs/common';
|
|
11
|
+
import { getCurrentTx } from './drizzle/transaction-context.drizzle.js';
|
|
12
|
+
let DatabaseService = class DatabaseService {
|
|
13
|
+
_db;
|
|
14
|
+
_strategy;
|
|
15
|
+
constructor(db, schema, strategy) {
|
|
16
|
+
this._db = db;
|
|
17
|
+
this._strategy = strategy;
|
|
18
|
+
Object.assign(this, schema);
|
|
19
|
+
}
|
|
20
|
+
get db() {
|
|
21
|
+
return getCurrentTx() ?? this._db;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
DatabaseService = __decorate([
|
|
25
|
+
Injectable(),
|
|
26
|
+
__metadata("design:paramtypes", [Object, Object, Object])
|
|
27
|
+
], DatabaseService);
|
|
28
|
+
export { DatabaseService };
|
|
29
|
+
//# sourceMappingURL=database.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.service.js","sourceRoot":"","sources":["../src/database.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAG3C,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AA6BhE,IAAM,eAAe,GAArB,MAAM,eAAe;IAGV,GAAG,CAAO;IAClB,SAAS,CAAiB;IAEnC,YAAY,EAAS,EAAE,MAAe,EAAE,QAAyB;QAChE,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5B,CAAC;IAMD,IAAI,EAAE;QACL,OAAO,YAAY,EAAE,IAAI,IAAI,CAAC,GAAG,CAAA;IAClC,CAAC;CACD,CAAA;AAnBY,eAAe;IAD3B,UAAU,EAAE;;GACA,eAAe,CAmB3B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { SchemaBuilder, SchemaResolverResult } from './drizzle/schema-builder.types.drizzle.js';
|
|
2
|
+
export type DatabaseAdapter = 'postgresql' | 'mysql' | 'sqlite';
|
|
3
|
+
export type DatabaseModuleOptions<TResult extends SchemaResolverResult = SchemaResolverResult> = {
|
|
4
|
+
adapter: 'postgresql';
|
|
5
|
+
postgresql: {
|
|
6
|
+
url: string;
|
|
7
|
+
};
|
|
8
|
+
schemaResolver: (schema: SchemaBuilder) => TResult;
|
|
9
|
+
} | {
|
|
10
|
+
adapter: 'mysql';
|
|
11
|
+
mysql: {
|
|
12
|
+
url: string;
|
|
13
|
+
};
|
|
14
|
+
schemaResolver: (schema: SchemaBuilder) => TResult;
|
|
15
|
+
} | {
|
|
16
|
+
adapter: 'sqlite';
|
|
17
|
+
sqlite: {
|
|
18
|
+
url: string;
|
|
19
|
+
};
|
|
20
|
+
schemaResolver: (schema: SchemaBuilder) => TResult;
|
|
21
|
+
};
|
|
22
|
+
//# sourceMappingURL=database.types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.types.d.ts","sourceRoot":"","sources":["../src/database.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAA;AAGpG,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,OAAO,GAAG,QAAQ,CAAA;AAsB/D,MAAM,MAAM,qBAAqB,CAAC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,IACzF;IACE,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3B,cAAc,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAA;CACnD,GACD;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACtB,cAAc,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAA;CACnD,GACD;IACE,OAAO,EAAE,QAAQ,CAAA;IACjB,MAAM,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;IACvB,cAAc,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAA;CACnD,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.types.js","sourceRoot":"","sources":["../src/database.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
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.drizzle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/client.drizzle.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;IAC/B,cAAc,CACb,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,CAAC,EAAE,EAAE,KAAK,KAAK,OAAO,CAAC,OAAO,CAAC,EACnC,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,CAAA;CACnB;AA+CD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG;IACpE,EAAE,EAAE,KAAK,CAAA;IACT,QAAQ,EAAE,eAAe,CAAA;CACzB,CAuBA"}
|
|
@@ -0,0 +1,37 @@
|
|
|
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 {
|
|
31
|
+
db: drizzle(new Database(options.sqlite.url)),
|
|
32
|
+
strategy: new SqliteStrategy(),
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=client.drizzle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/client.drizzle.ts"],"names":[],"mappings":"AAeA,MAAM,kBAAkB;IACvB,KAAK,CAAC,cAAc,CACnB,EAAS,EACT,EAAmC,EACnC,cAAuB;QAEvB,OAAO,EAAE,CAAC,WAAW,CACpB,EAAE,EACF,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAC/C,CAAA;IACF,CAAC;CACD;AAED,MAAM,aAAa;IAClB,KAAK,CAAC,cAAc,CACnB,EAAS,EACT,EAAmC,EACnC,cAAuB;QAEvB,OAAO,EAAE,CAAC,WAAW,CACpB,EAAE,EACF,cAAc,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAC/C,CAAA;IACF,CAAC;CACD;AAED,MAAM,cAAc;IACnB,KAAK,CAAC,cAAc,CACnB,EAAS,EACT,EAAmC,EACnC,cAAuB;QAGvB,MAAM,QAAQ,GAAG,cAIL,CAAA;QACZ,OAAO,EAAE,CAAC,WAAW,CACpB,EAAE,EACF,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CACnC,CAAA;IACF,CAAC;CACD;AAED,MAAM,UAAU,mBAAmB,CAAC,OAA8B;IAIjE,QAAQ,OAAO,CAAC,OAAO,EAAE,CAAC;QACzB,KAAK,YAAY,CAAC,CAAC,CAAC;YAEnB,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;QACnF,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YAEd,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;QACzE,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YAEf,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAQ,CAAA;YAEhE,MAAM,QAAQ,GAAG,OAAO,CAAC,gBAAgB,CAAQ,CAAA;YACjD,OAAO;gBACN,EAAE,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBAC7C,QAAQ,EAAE,IAAI,cAAc,EAAE;aAC9B,CAAA;QACF,CAAC;IACF,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { DatabaseAdapter } from '../database.types.js';
|
|
2
|
+
import type { SchemaBuilder, SchemaResolverResult } from '../drizzle/schema-builder.types.drizzle.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.drizzle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/schema-builder.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,KAAK,EAEX,aAAa,EACb,oBAAoB,EACpB,MAAM,2CAA2C,CAAA;AAElD,wBAAgB,mBAAmB,IAAI,aAAa,CAQnD;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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export function createSchemaBuilder() {
|
|
2
|
+
return {
|
|
3
|
+
table(columns) {
|
|
4
|
+
return { __columns: columns };
|
|
5
|
+
},
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function createTable(adapter, tableName, columns) {
|
|
9
|
+
switch (adapter) {
|
|
10
|
+
case 'postgresql': {
|
|
11
|
+
const { pgTable } = require('drizzle-orm/pg-core');
|
|
12
|
+
return pgTable(tableName, columns);
|
|
13
|
+
}
|
|
14
|
+
case 'mysql': {
|
|
15
|
+
const { mysqlTable } = require('drizzle-orm/mysql-core');
|
|
16
|
+
return mysqlTable(tableName, columns);
|
|
17
|
+
}
|
|
18
|
+
case 'sqlite': {
|
|
19
|
+
const { sqliteTable } = require('drizzle-orm/sqlite-core');
|
|
20
|
+
return sqliteTable(tableName, columns);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export function materializeSchema(adapter, resolverResult) {
|
|
25
|
+
return Object.fromEntries(Object.entries(resolverResult).map(([tableName, columnMap]) => {
|
|
26
|
+
const columns = columnMap.__columns;
|
|
27
|
+
return [tableName, createTable(adapter, tableName, columns)];
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=schema-builder.drizzle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/schema-builder.drizzle.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,mBAAmB;IAClC,OAAO;QACN,KAAK,CACJ,OAAiB;YAEjB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;QAC9B,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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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.drizzle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.types.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/schema-builder.types.drizzle.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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.types.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/schema-builder.types.drizzle.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
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.drizzle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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;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,CAM7B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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.drizzle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAOpD,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAS,CAAA;AAEhE,MAAM,UAAU,YAAY;IAC3B,OAAO,kBAAkB,CAAC,QAAQ,EAAE,CAAA;AACrC,CAAC;AAED,IAAI,GAAsB,CAAA;AAE1B,MAAM,UAAU,UAAU,CAAC,EAAS;IACnC,GAAG,GAAG,EAAE,CAAA;AACT,CAAC;AAED,MAAM,UAAU,KAAK;IACpB,IAAI,CAAC,GAAG;QACP,MAAM,IAAI,KAAK,CACd,6EAA6E,CAC7E,CAAA;IACF,OAAO,GAAG,CAAA;AACX,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
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.drizzle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
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,GACd,UAAU,GACV,WAAW,GACX,WAAW,CAAA;AAEd,wBAAgB,aAAa,CAAC,cAAc,CAAC,EAAE,cAAc,IAE3D,SAAS,MAAM,EACf,cAAc,MAAM,GAAG,MAAM,EAC7B,YAAY,kBAAkB,KAC5B,kBAAkB,CAmBrB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getCurrentTx, getDb, transactionStorage, } from '../drizzle/transaction-context.drizzle.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.drizzle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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;AAWjD,MAAM,UAAU,aAAa,CAAC,cAA+B;IAC5D,OAAO,UACN,OAAe,EACf,YAA6B,EAC7B,UAA8B;QAE9B,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAiD,CAAA;QAE7E,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,EAAE,CAAA;YAElB,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,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAC/C,CAAA;QACF,CAAC,CAAA;QAED,OAAO,UAAU,CAAA;IAClB,CAAC,CAAA;AACF,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './database.constants.js';
|
|
2
|
+
export * from './database.module.js';
|
|
3
|
+
export * from './database.service.js';
|
|
4
|
+
export * from './database.types.js';
|
|
5
|
+
export type { ColumnMap, SchemaBuilder, SchemaResolverResult, } from './drizzle/schema-builder.types.drizzle.js';
|
|
6
|
+
export type { IsolationLevel } from './drizzle/transactional.drizzle.js';
|
|
7
|
+
export { Transactional } from './drizzle/transactional.drizzle.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AAEnC,YAAY,EACX,SAAS,EACT,aAAa,EACb,oBAAoB,GACpB,MAAM,2CAA2C,CAAA;AAClD,YAAY,EAAE,cAAc,EAAE,MAAM,oCAAoC,CAAA;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAA;AACvC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AAQnC,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prisma/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prisma/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAA;AACzC,cAAc,qCAAqC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-builder.types.js","sourceRoot":"","sources":["../src/schema-builder.types.ts"],"names":[],"mappings":""}
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@turystack/nestjs-database",
|
|
3
|
+
"private": false,
|
|
4
|
+
"version": "0.0.1",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js",
|
|
13
|
+
"default": "./dist/index.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"publishConfig": {
|
|
17
|
+
"access": "public"
|
|
18
|
+
},
|
|
19
|
+
"files": [
|
|
20
|
+
"dist"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json",
|
|
24
|
+
"test": "vitest run",
|
|
25
|
+
"test:cov": "vitest run --coverage",
|
|
26
|
+
"lint": "biome lint ./src",
|
|
27
|
+
"format": "biome format --write ./src",
|
|
28
|
+
"check": "biome check --write ./src"
|
|
29
|
+
},
|
|
30
|
+
"repository": {
|
|
31
|
+
"type": "git",
|
|
32
|
+
"url": "https://github.com/turystack/nestjs-database.git"
|
|
33
|
+
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"@nestjs/common": "^11.0.0",
|
|
36
|
+
"@nestjs/core": "^11.0.0",
|
|
37
|
+
"better-sqlite3": "^11.0.0",
|
|
38
|
+
"drizzle-orm": "^0.44.0",
|
|
39
|
+
"mysql2": "^3.0.0",
|
|
40
|
+
"pg": "^8.0.0",
|
|
41
|
+
"reflect-metadata": "^0.2.0"
|
|
42
|
+
},
|
|
43
|
+
"peerDependenciesMeta": {
|
|
44
|
+
"pg": {
|
|
45
|
+
"optional": true
|
|
46
|
+
},
|
|
47
|
+
"mysql2": {
|
|
48
|
+
"optional": true
|
|
49
|
+
},
|
|
50
|
+
"better-sqlite3": {
|
|
51
|
+
"optional": true
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@biomejs/biome": "2.2.2",
|
|
56
|
+
"@nestjs/common": "^11.0.0",
|
|
57
|
+
"@nestjs/core": "^11.0.0",
|
|
58
|
+
"@types/better-sqlite3": "^7.0.0",
|
|
59
|
+
"@types/node": "^22.19.15",
|
|
60
|
+
"@types/pg": "^8.0.0",
|
|
61
|
+
"@vitest/coverage-v8": "^2.1.0",
|
|
62
|
+
"better-sqlite3": "^11.0.0",
|
|
63
|
+
"drizzle-orm": "^0.44.0",
|
|
64
|
+
"pg": "^8.0.0",
|
|
65
|
+
"reflect-metadata": "^0.2.2",
|
|
66
|
+
"tsc-alias": "^1.8.16",
|
|
67
|
+
"typescript": "^5.5.0",
|
|
68
|
+
"vitest": "^2.1.0"
|
|
69
|
+
}
|
|
70
|
+
}
|