@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
package/README.md ADDED
@@ -0,0 +1,70 @@
1
+ # @turystack/nestjs-database
2
+
3
+ Typed database module for NestJS: schema builder, per-table repositories, and transactional decorator. PostgreSQL (Drizzle) and DynamoDB adapters.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ pnpm add @turystack/nestjs-database
9
+ ```
10
+
11
+ ### Peer dependencies
12
+
13
+ The host application provides these:
14
+
15
+ ```bash
16
+ pnpm add @nestjs/common @nestjs/core @turystack/exceptions @turystack/nestjs-config reflect-metadata uuidv7
17
+ ```
18
+
19
+ Then the driver for the engine you chose, and only that one. Every driver is an
20
+ optional peer and is imported lazily, so the package's entry point loads with
21
+ neither installed:
22
+
23
+ ```bash
24
+ # adapter: 'postgresql'
25
+ pnpm add drizzle-orm pg
26
+
27
+ # adapter: 'dynamodb'
28
+ pnpm add @aws-sdk/client-dynamodb @aws-sdk/lib-dynamodb
29
+ ```
30
+
31
+ The PostgreSQL schema builder lives at `@turystack/nestjs-database/postgresql`
32
+ rather than the root, for the same reason: everything it exports imports
33
+ `drizzle-orm` at module scope, and re-exporting it from the barrel would make
34
+ Drizzle required for a DynamoDB app.
35
+
36
+ ```ts
37
+ import {
38
+ createSchemaBuilder,
39
+ materializeSchema,
40
+ } from '@turystack/nestjs-database/postgresql'
41
+ ```
42
+
43
+ ### Breaking: three exports moved
44
+
45
+ `createSchemaBuilder`, `materializeSchema` and `TableRepository` used to come
46
+ from the root and now come from `@turystack/nestjs-database/postgresql`. Nothing
47
+ else moved, and the fix is the import path.
48
+
49
+ They moved because each of them imports `drizzle-orm` at module scope, so while
50
+ they sat in the barrel the "optional" Drizzle peer was required for every
51
+ consumer — including an app that only ever registers `adapter: 'dynamodb'`.
52
+
53
+ This is an entry-point change; the package is still published as `1.0.0` and the
54
+ version bump is a release decision, not a code one.
55
+
56
+ ## Documentation
57
+
58
+ Options, API reference and examples:
59
+
60
+ **https://tury.dev/libs/nestjs-database**
61
+
62
+ ## Development
63
+
64
+ ```bash
65
+ pnpm install
66
+ pnpm typecheck
67
+ pnpm check
68
+ pnpm test
69
+ pnpm build
70
+ ```
@@ -0,0 +1,7 @@
1
+ export type AuditActorReader = () => string | undefined;
2
+ export declare function registerAuditActor(next: AuditActorReader | undefined): void;
3
+ export declare function currentAuditActor(): string | undefined;
4
+ export declare const CREATED_BY_COLUMN = "createdBy";
5
+ export declare const UPDATED_BY_COLUMN = "updatedBy";
6
+ export declare function withAuditActor(data: Record<string, unknown>, columns: Record<string, unknown>, column: string): Record<string, unknown>;
7
+ //# sourceMappingURL=audit.context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.context.d.ts","sourceRoot":"","sources":["../src/audit.context.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,gBAAgB,GAAG,MAAM,MAAM,GAAG,SAAS,CAAA;AAYvD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,GAAG,SAAS,GAAG,IAAI,CAE3E;AAGD,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,SAAS,CAEtD;AAGD,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAG5C,eAAO,MAAM,iBAAiB,cAAc,CAAA;AAS5C,wBAAgB,cAAc,CAC7B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,MAAM,EAAE,MAAM,GACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAezB"}
@@ -0,0 +1,23 @@
1
+ let reader;
2
+ export function registerAuditActor(next) {
3
+ reader = next;
4
+ }
5
+ export function currentAuditActor() {
6
+ return reader?.();
7
+ }
8
+ export const CREATED_BY_COLUMN = 'createdBy';
9
+ export const UPDATED_BY_COLUMN = 'updatedBy';
10
+ export function withAuditActor(data, columns, column) {
11
+ if (!columns[column] || data[column] !== undefined) {
12
+ return data;
13
+ }
14
+ const actor = currentAuditActor();
15
+ if (!actor) {
16
+ return data;
17
+ }
18
+ return {
19
+ ...data,
20
+ [column]: actor,
21
+ };
22
+ }
23
+ //# sourceMappingURL=audit.context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"audit.context.js","sourceRoot":"","sources":["../src/audit.context.ts"],"names":[],"mappings":"AAGA,IAAI,MAAoC,CAAA;AAUxC,MAAM,UAAU,kBAAkB,CAAC,IAAkC;IACpE,MAAM,GAAG,IAAI,CAAA;AACd,CAAC;AAGD,MAAM,UAAU,iBAAiB;IAChC,OAAO,MAAM,EAAE,EAAE,CAAA;AAClB,CAAC;AAGD,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAG5C,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAA;AAS5C,MAAM,UAAU,cAAc,CAC7B,IAA6B,EAC7B,OAAgC,EAChC,MAAc;IAEd,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE,CAAC;QACpD,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,iBAAiB,EAAE,CAAA;IAEjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACZ,OAAO,IAAI,CAAA;IACZ,CAAC;IAED,OAAO;QACN,GAAG,IAAI;QACP,CAAC,MAAM,CAAC,EAAE,KAAK;KACf,CAAA;AACF,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { TransactionOptions } from './database.types.js';
2
+ export interface ITransactionStrategy {
3
+ run<TResult>(client: unknown, work: (handle: unknown) => Promise<TResult>, options?: TransactionOptions): Promise<TResult>;
4
+ }
5
+ export interface IDatabaseAdapter {
6
+ initialize(): Promise<{
7
+ client: unknown;
8
+ tables: Record<string, unknown>;
9
+ }>;
10
+ createRepository(input: {
11
+ getClient: () => unknown;
12
+ table: unknown;
13
+ tableName: string;
14
+ }): object;
15
+ readonly transaction: ITransactionStrategy;
16
+ }
17
+ //# sourceMappingURL=database.adapter.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.adapter.interface.d.ts","sourceRoot":"","sources":["../src/database.adapter.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAU7D,MAAM,WAAW,oBAAoB;IASpC,GAAG,CAAC,OAAO,EACV,MAAM,EAAE,OAAO,EACf,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EAC3C,OAAO,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CAAC,OAAO,CAAC,CAAA;CACnB;AAWD,MAAM,WAAW,gBAAgB;IAShC,UAAU,IAAI,OAAO,CAAC;QACrB,MAAM,EAAE,OAAO,CAAA;QACf,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC/B,CAAC,CAAA;IASF,gBAAgB,CAAC,KAAK,EAAE;QACvB,SAAS,EAAE,MAAM,OAAO,CAAA;QACxB,KAAK,EAAE,OAAO,CAAA;QACd,SAAS,EAAE,MAAM,CAAA;KACjB,GAAG,MAAM,CAAA;IAGV,QAAQ,CAAC,WAAW,EAAE,oBAAoB,CAAA;CAC1C"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=database.adapter.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.adapter.interface.js","sourceRoot":"","sources":["../src/database.adapter.interface.ts"],"names":[],"mappings":""}
@@ -1,2 +1,4 @@
1
1
  export declare const DATABASE_SERVICE: unique symbol;
2
+ export declare const DATABASE_ADAPTER: unique symbol;
3
+ export declare const DATABASE_MODULE_OPTIONS: unique symbol;
2
4
  //# sourceMappingURL=database.constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"database.constants.d.ts","sourceRoot":"","sources":["../src/database.constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,eAA6B,CAAA"}
1
+ {"version":3,"file":"database.constants.d.ts","sourceRoot":"","sources":["../src/database.constants.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,eAA6B,CAAA;AAG1D,eAAO,MAAM,gBAAgB,eAA6B,CAAA;AAG1D,eAAO,MAAM,uBAAuB,eAAoC,CAAA"}
@@ -1,2 +1,4 @@
1
1
  export const DATABASE_SERVICE = Symbol('DATABASE_SERVICE');
2
+ export const DATABASE_ADAPTER = Symbol('DATABASE_ADAPTER');
3
+ export const DATABASE_MODULE_OPTIONS = Symbol('DATABASE_MODULE_OPTIONS');
2
4
  //# sourceMappingURL=database.constants.js.map
@@ -1 +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"}
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;AAG1D,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;AAG1D,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { MaterializeSchema } from './drizzle/schema-builder.drizzle.js';
2
+ import type { PgSchemaBuilder, RelationsHelpers, RelationsResolverResult, SchemaResolverResult } from './drizzle/schema-builder.types.drizzle.js';
3
+ import type { DynamoSchemaBuilder, DynamoSchemaResolverResult } from './dynamodb/schema-builder.types.dynamodb.js';
4
+ export declare function defineDatabaseSchema<TResult extends SchemaResolverResult>(resolver: (schema: PgSchemaBuilder) => TResult): (schema: PgSchemaBuilder) => TResult;
5
+ export declare function defineDatabaseRelations<TSchemaResolver extends (schema: PgSchemaBuilder) => SchemaResolverResult, TRelations extends RelationsResolverResult>(_schemaResolver: TSchemaResolver, resolver: (tables: MaterializeSchema<ReturnType<TSchemaResolver>>, helpers: RelationsHelpers) => TRelations): (tables: MaterializeSchema<ReturnType<TSchemaResolver>>, helpers: RelationsHelpers) => TRelations;
6
+ export declare function defineDynamoDatabaseSchema<TResult extends DynamoSchemaResolverResult>(resolver: (schema: DynamoSchemaBuilder) => TResult): (schema: DynamoSchemaBuilder) => TResult;
7
+ //# sourceMappingURL=database.helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.helpers.d.ts","sourceRoot":"","sources":["../src/database.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,2CAA2C,CAAA;AAClD,OAAO,KAAK,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,6CAA6C,CAAA;AAkBpD,wBAAgB,oBAAoB,CAAC,OAAO,SAAS,oBAAoB,EACxE,QAAQ,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,GAC5C,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAEtC;AAkBD,wBAAgB,uBAAuB,CACtC,eAAe,SAAS,CAAC,MAAM,EAAE,eAAe,KAAK,oBAAoB,EACzE,UAAU,SAAS,uBAAuB,EAE1C,eAAe,EAAE,eAAe,EAChC,QAAQ,EAAE,CACT,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EACtD,OAAO,EAAE,gBAAgB,KACrB,UAAU,GACb,CACF,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,EACtD,OAAO,EAAE,gBAAgB,KACrB,UAAU,CAEd;AAsBD,wBAAgB,0BAA0B,CACzC,OAAO,SAAS,0BAA0B,EAE1C,QAAQ,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,GAChD,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAE1C"}
@@ -0,0 +1,10 @@
1
+ export function defineDatabaseSchema(resolver) {
2
+ return resolver;
3
+ }
4
+ export function defineDatabaseRelations(_schemaResolver, resolver) {
5
+ return resolver;
6
+ }
7
+ export function defineDynamoDatabaseSchema(resolver) {
8
+ return resolver;
9
+ }
10
+ //# sourceMappingURL=database.helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"database.helpers.js","sourceRoot":"","sources":["../src/database.helpers.ts"],"names":[],"mappings":"AA4BA,MAAM,UAAU,oBAAoB,CACnC,QAA8C;IAE9C,OAAO,QAAQ,CAAA;AAChB,CAAC;AAkBD,MAAM,UAAU,uBAAuB,CAItC,eAAgC,EAChC,QAGe;IAKf,OAAO,QAAQ,CAAA;AAChB,CAAC;AAsBD,MAAM,UAAU,0BAA0B,CAGzC,QAAkD;IAElD,OAAO,QAAQ,CAAA;AAChB,CAAC"}
@@ -1,8 +1,11 @@
1
1
  import { type DynamicModule } from '@nestjs/common';
2
+ import { ConfigService } from '@turystack/nestjs-config';
2
3
  import type { DatabaseModuleOptions } from './database.types.js';
3
4
  import type { RelationsResolverResult, SchemaResolverResult } from './drizzle/schema-builder.types.drizzle.js';
4
5
  export declare class DatabaseModule {
5
- static register<TResult extends SchemaResolverResult, TRelations extends RelationsResolverResult | undefined = undefined>(options: DatabaseModuleOptions<TResult, TRelations>): DynamicModule;
6
+ static register<TResult extends SchemaResolverResult, TRelations extends RelationsResolverResult | undefined = undefined>(options: DatabaseModuleOptions<TResult, TRelations> | ((config: ConfigService) => DatabaseModuleOptions<TResult, TRelations>)): DynamicModule;
7
+ private static _createAdapter;
8
+ private static _resolveOptions;
6
9
  private static _resolveProviders;
7
10
  }
8
11
  //# sourceMappingURL=database.module.d.ts.map
@@ -1 +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;AAM1E,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAOhE,OAAO,KAAK,EACX,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,2CAA2C,CAAA;AAGlD,qBACa,cAAc;IAC1B,MAAM,CAAC,QAAQ,CACd,OAAO,SAAS,oBAAoB,EACpC,UAAU,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,EACjE,OAAO,EAAE,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,aAAa;IAQrE,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAqChC"}
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;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAA;AASxD,OAAO,KAAK,EAEX,qBAAqB,EACrB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EACX,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,2CAA2C,CAAA;AA2ClD,qBACa,cAAc;IAC1B,MAAM,CAAC,QAAQ,CACd,OAAO,SAAS,oBAAoB,EACpC,UAAU,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,EAElE,OAAO,EACJ,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,GAC1C,CAAC,CAAC,MAAM,EAAE,aAAa,KAAK,qBAAqB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,GACxE,aAAa,CAWf;mBAEoB,cAAc;IAoBnC,OAAO,CAAC,MAAM,CAAC,eAAe;IAsB9B,OAAO,CAAC,MAAM,CAAC,iBAAiB;CAkDhC"}
@@ -6,34 +6,80 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
6
6
  };
7
7
  var DatabaseModule_1;
8
8
  import { Module } from '@nestjs/common';
9
- import { relations as drizzleRelations } from 'drizzle-orm';
10
- import { DATABASE_SERVICE } from './database.constants.js';
9
+ import { ConfigService } from '@turystack/nestjs-config';
10
+ import { DATABASE_ADAPTER, DATABASE_MODULE_OPTIONS, DATABASE_SERVICE, } from './database.constants.js';
11
11
  import { DatabaseService } from './database.service.js';
12
- import { createDrizzleClient } from './drizzle/client.drizzle.js';
13
- import { createSchemaBuilder, materializeSchema, } from './drizzle/schema-builder.drizzle.js';
14
- import { registerDb } from './drizzle/transaction-context.drizzle.js';
12
+ import { registerEngine } from './transaction.context.js';
13
+ const ADAPTERS = {
14
+ dynamodb: async (options) => {
15
+ const { createDynamodbAdapter } = await import('./dynamodb/dynamodb.adapter.js');
16
+ return createDynamodbAdapter(options);
17
+ },
18
+ postgresql: async (options) => {
19
+ const { createPostgresqlAdapter } = await import('./drizzle/postgresql.adapter.js');
20
+ return createPostgresqlAdapter(options);
21
+ },
22
+ };
15
23
  let DatabaseModule = DatabaseModule_1 = class DatabaseModule {
16
24
  static register(options) {
17
25
  return {
18
- exports: [DatabaseService, DATABASE_SERVICE],
26
+ exports: [
27
+ DatabaseService,
28
+ DATABASE_SERVICE,
29
+ DATABASE_ADAPTER,
30
+ ],
31
+ global: true,
19
32
  module: DatabaseModule_1,
20
33
  providers: DatabaseModule_1._resolveProviders(options),
21
34
  };
22
35
  }
23
- static _resolveProviders(options) {
36
+ static async _createAdapter(options) {
37
+ const factory = ADAPTERS[options.adapter];
38
+ if (!factory) {
39
+ throw new Error(`[DatabaseModule] unknown adapter "${options.adapter}" — known adapters: ${Object.keys(ADAPTERS).join(', ')}`);
40
+ }
41
+ return factory(options);
42
+ }
43
+ static _resolveOptions(options, config) {
44
+ if (typeof options !== 'function') {
45
+ return options;
46
+ }
47
+ if (!config) {
48
+ throw new Error('[DatabaseModule] register((config) => ...) requires ConfigModule (@turystack/nestjs-config) to be registered');
49
+ }
50
+ return options(config);
51
+ }
52
+ static _resolveProviders(optionsOrFactory) {
24
53
  return [
25
54
  {
55
+ inject: [
56
+ {
57
+ optional: true,
58
+ token: ConfigService,
59
+ },
60
+ ],
61
+ provide: DATABASE_MODULE_OPTIONS,
62
+ useFactory: (config) => DatabaseModule_1._resolveOptions(optionsOrFactory, config),
63
+ },
64
+ {
65
+ inject: [
66
+ DATABASE_MODULE_OPTIONS,
67
+ ],
68
+ provide: DATABASE_ADAPTER,
69
+ useFactory: (options) => DatabaseModule_1._createAdapter(options),
70
+ },
71
+ {
72
+ inject: [
73
+ DATABASE_ADAPTER,
74
+ ],
26
75
  provide: DatabaseService,
27
- useFactory: async () => {
28
- const tables = materializeSchema(options.schemaResolver(createSchemaBuilder()));
29
- let fullSchema = { ...tables };
30
- if (options.relationsResolver) {
31
- const relationsResult = options.relationsResolver(tables, { relations: drizzleRelations });
32
- fullSchema = { ...tables, ...relationsResult };
33
- }
34
- const { db, strategy } = await createDrizzleClient(options, fullSchema);
35
- registerDb(db);
36
- return new DatabaseService(db, tables, strategy);
76
+ useFactory: async (adapter) => {
77
+ const { client, tables } = await adapter.initialize();
78
+ registerEngine({
79
+ adapter,
80
+ client,
81
+ });
82
+ return new DatabaseService(adapter, client, tables);
37
83
  },
38
84
  },
39
85
  {
@@ -1 +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,SAAS,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE3D,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;AAK5C,OAAO,EAAE,UAAU,EAAE,MAAM,0CAA0C,CAAA;AAG9D,IAAM,cAAc,sBAApB,MAAM,cAAc;IAC1B,MAAM,CAAC,QAAQ,CAGb,OAAmD;QACpD,OAAO;YACN,OAAO,EAAE,CAAC,eAAe,EAAE,gBAAgB,CAAC;YAC5C,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE,gBAAc,CAAC,iBAAiB,CAAC,OAAO,CAAC;SACpD,CAAA;IACF,CAAC;IAEO,MAAM,CAAC,iBAAiB,CAG9B,OAAmD;QACpD,OAAO;YACN;gBACC,OAAO,EAAE,eAAe;gBACxB,UAAU,EAAE,KAAK,IAAI,EAAE;oBACtB,MAAM,MAAM,GAAG,iBAAiB,CAC/B,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAC7C,CAAA;oBAED,IAAI,UAAU,GAA4B,EAAE,GAAG,MAAM,EAAE,CAAA;oBAEvD,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;wBAC/B,MAAM,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAChD,MAAe,EACf,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAC/B,CAAA;wBACD,UAAU,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,eAAe,EAAE,CAAA;oBAC/C,CAAC;oBAED,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,mBAAmB,CACjD,OAAgC,EAChC,UAAU,CACV,CAAA;oBACD,UAAU,CAAC,EAAE,CAAC,CAAA;oBAEd,OAAO,IAAI,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAA;gBACjD,CAAC;aACD;YACD;gBACC,OAAO,EAAE,gBAAgB;gBACzB,WAAW,EAAE,eAAe;aAC5B;SACD,CAAA;IACF,CAAC;CACD,CAAA;AAjDY,cAAc;IAD1B,MAAM,CAAC,EAAE,CAAC;GACE,cAAc,CAiD1B"}
1
+ {"version":3,"file":"database.module.js","sourceRoot":"","sources":["../src/database.module.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- import type { Table } from 'drizzle-orm';
1
+ import type { IDatabaseAdapter } from './database.adapter.interface.js';
2
2
  import type { ResolvedDatabase, ResolvedRepositories } from './database.types.js';
3
- import type { AdapterStrategy } from './drizzle/client.drizzle.js';
4
3
  export declare class DatabaseService {
5
4
  private readonly _db;
6
- readonly _strategy: AdapterStrategy;
7
- constructor(db: unknown, schema: Record<string, Table>, strategy: AdapterStrategy);
5
+ constructor(adapter: IDatabaseAdapter, db: unknown, schema: Record<string, unknown>);
8
6
  get raw(): ResolvedDatabase;
9
7
  }
10
8
  export interface DatabaseService extends ResolvedRepositories {
@@ -1 +1 @@
1
- {"version":3,"file":"database.service.d.ts","sourceRoot":"","sources":["../src/database.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,KAAK,EACX,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAA;AAIlE,qBACa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAA;gBAGlC,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,EAC7B,QAAQ,EAAE,eAAe;IAc1B,IAAI,GAAG,IAAI,gBAAgB,CAE1B;CACD;AAGD,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;CAAG"}
1
+ {"version":3,"file":"database.service.d.ts","sourceRoot":"","sources":["../src/database.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AACvE,OAAO,KAAK,EACX,gBAAgB,EAChB,oBAAoB,EACpB,MAAM,qBAAqB,CAAA;AAO5B,qBAEa,eAAe;IAC3B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAE7B,YACC,OAAO,EAAE,gBAAgB,EACzB,EAAE,EAAE,OAAO,EACX,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAgB/B;IAED,IAAI,GAAG,IAAI,gBAAgB,CAE1B;CACD;AAED,MAAM,WAAW,eAAgB,SAAQ,oBAAoB;CAAG"}
@@ -8,17 +8,21 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { Injectable } from '@nestjs/common';
11
- import { getCurrentTx } from './drizzle/transaction-context.drizzle.js';
12
- import { TableRepository } from './repository/table-repository.js';
11
+ import { getCurrentTx } from './transaction.context.js';
13
12
  let DatabaseService = class DatabaseService {
14
13
  _db;
15
- _strategy;
16
- constructor(db, schema, strategy) {
14
+ constructor(adapter, db, schema) {
17
15
  this._db = db;
18
- this._strategy = strategy;
19
16
  for (const [tableName, table] of Object.entries(schema)) {
17
+ if (tableName in this) {
18
+ throw new Error(`[DatabaseModule] table name "${tableName}" is reserved by DatabaseService`);
19
+ }
20
20
  ;
21
- this[tableName] = new TableRepository(() => this.raw, tableName, table);
21
+ this[tableName] = adapter.createRepository({
22
+ getClient: () => this.raw,
23
+ table,
24
+ tableName,
25
+ });
22
26
  }
23
27
  }
24
28
  get raw() {
@@ -1 +1 @@
1
- {"version":3,"file":"database.service.js","sourceRoot":"","sources":["../src/database.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAS3C,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAA;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAG3D,IAAM,eAAe,GAArB,MAAM,eAAe;IACV,GAAG,CAAS;IACpB,SAAS,CAAiB;IAEnC,YACC,EAAW,EACX,MAA6B,EAC7B,QAAyB;QAEzB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACb,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QAEzB,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,CAAC;YAAC,IAAgC,CAAC,SAAS,CAAC,GAAG,IAAI,eAAe,CAClE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,EACd,SAAS,EACT,KAAK,CACL,CAAA;QACF,CAAC;IACF,CAAC;IAED,IAAI,GAAG;QACN,OAAO,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,GAAG,CAAqB,CAAA;IACxD,CAAC;CACD,CAAA;AAxBY,eAAe;IAD3B,UAAU,EAAE;;GACA,eAAe,CAwB3B"}
1
+ {"version":3,"file":"database.service.js","sourceRoot":"","sources":["../src/database.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAO3C,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAQhD,IAAM,eAAe,GAArB,MAAM,eAAe;IACV,GAAG,CAAS;IAE7B,YACC,OAAyB,EACzB,EAAW,EACX,MAA+B;QAE/B,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QAEb,KAAK,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACzD,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACd,gCAAgC,SAAS,kCAAkC,CAC3E,CAAA;YACF,CAAC;YACD,CAAC;YAAC,IAAgC,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;gBACxE,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG;gBACzB,KAAK;gBACL,SAAS;aACT,CAAC,CAAA;QACH,CAAC;IACF,CAAC;IAED,IAAI,GAAG;QACN,OAAO,CAAC,YAAY,EAAE,IAAI,IAAI,CAAC,GAAG,CAAqB,CAAA;IACxD,CAAC;CACD,CAAA;AA3BY,eAAe;IAF3B,UAAU,EAAE;;GAEA,eAAe,CA2B3B"}
@@ -2,16 +2,38 @@ import type { Table } from 'drizzle-orm';
2
2
  import type { NodePgDatabase } from 'drizzle-orm/node-postgres';
3
3
  import type { MaterializeSchema, MaterializeSchemaWithRelations } from './drizzle/schema-builder.drizzle.js';
4
4
  import type { PgSchemaBuilder, RelationsHelpers, RelationsResolverResult, SchemaResolverResult } from './drizzle/schema-builder.types.drizzle.js';
5
+ import type { InferDynamoRepositories } from './dynamodb/dynamodb.repository.types.js';
6
+ import type { DynamoSchemaBuilder, DynamoSchemaResolverResult, DynamoTable, MaterializeDynamoSchema } from './dynamodb/schema-builder.types.dynamodb.js';
5
7
  import type { InferRepositories } from './repository/table-repository.types.js';
6
8
  export type DatabaseOptions = {
7
9
  url: string;
8
10
  };
9
- export type DatabaseModuleOptions<TResult extends SchemaResolverResult = SchemaResolverResult, TRelations extends RelationsResolverResult | undefined = undefined> = {
11
+ export type DatabaseAdapterName = 'dynamodb' | 'postgresql';
12
+ export type DynamodbOptions = {
13
+ credentials?: {
14
+ accessKeyId: string;
15
+ secretAccessKey: string;
16
+ };
17
+ endpoint?: string;
18
+ region: string;
19
+ tablePrefix?: string;
20
+ };
21
+ export type IsolationLevel = 'read uncommitted' | 'read committed' | 'repeatable read' | 'serializable';
22
+ export type TransactionOptions = {
23
+ isolationLevel?: IsolationLevel;
24
+ };
25
+ export type PostgresqlModuleOptions<TResult extends SchemaResolverResult = SchemaResolverResult, TRelations extends RelationsResolverResult | undefined = undefined> = {
10
26
  adapter: 'postgresql';
11
27
  postgresql: DatabaseOptions;
12
28
  schemaResolver: (schema: PgSchemaBuilder) => TResult;
13
29
  relationsResolver?: (tables: MaterializeSchema<TResult>, helpers: RelationsHelpers) => TRelations & RelationsResolverResult;
14
30
  };
31
+ export type DynamodbModuleOptions<TResult extends DynamoSchemaResolverResult = DynamoSchemaResolverResult> = {
32
+ adapter: 'dynamodb';
33
+ dynamodb: DynamodbOptions;
34
+ schemaResolver: (schema: DynamoSchemaBuilder) => TResult;
35
+ };
36
+ export type DatabaseModuleOptions<TResult extends SchemaResolverResult = SchemaResolverResult, TRelations extends RelationsResolverResult | undefined = undefined> = DynamodbModuleOptions | PostgresqlModuleOptions<TResult, TRelations>;
15
37
  export interface DatabaseServiceRegistry {
16
38
  }
17
39
  export type ResolvedDatabase = DatabaseServiceRegistry extends {
@@ -21,9 +43,14 @@ export type ResolvedSchema = DatabaseServiceRegistry extends {
21
43
  schema: infer TSchema extends Record<string, Table>;
22
44
  } ? TSchema : Record<string, Table>;
23
45
  export type ResolvedRepositories = DatabaseServiceRegistry extends {
46
+ schema: infer TSchema extends Record<string, DynamoTable>;
47
+ } ? InferDynamoRepositories<TSchema> : DatabaseServiceRegistry extends {
24
48
  raw: infer TDb;
25
49
  schema: infer TSchema extends Record<string, Table>;
26
50
  } ? InferRepositories<TDb, TSchema> : {};
51
+ export type InferDynamoDatabaseConfig<TSchemaResult extends DynamoSchemaResolverResult> = {
52
+ schema: MaterializeDynamoSchema<TSchemaResult>;
53
+ };
27
54
  export type InferDatabase<TSchema extends SchemaResolverResult, TRelations extends RelationsResolverResult | undefined = undefined> = NodePgDatabase<MaterializeSchemaWithRelations<TSchema, TRelations>>;
28
55
  export type InferDatabaseConfig<TSchemaResult extends SchemaResolverResult, TRelationsResult extends RelationsResolverResult | undefined = undefined> = {
29
56
  raw: InferDatabase<TSchemaResult, TRelationsResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"database.types.d.ts","sourceRoot":"","sources":["../src/database.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,KAAK,EACX,iBAAiB,EACjB,8BAA8B,EAC9B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,2CAA2C,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,MAAM,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAA;CACX,CAAA;AASD,MAAM,MAAM,qBAAqB,CAChC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,EAC3D,UAAU,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,IAC/D;IACH,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,eAAe,CAAA;IAC3B,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAA;IACpD,iBAAiB,CAAC,EAAE,CACnB,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAClC,OAAO,EAAE,gBAAgB,KACrB,UAAU,GAAG,uBAAuB,CAAA;CACzC,CAAA;AAqBD,MAAM,WAAW,uBAAuB;CAAG;AAG3C,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,SAAS;IAC9D,GAAG,EAAE,MAAM,GAAG,CAAA;CACd,GACE,GAAG,GACH,OAAO,CAAA;AAGV,MAAM,MAAM,cAAc,GAAG,uBAAuB,SAAS;IAC5D,MAAM,EAAE,MAAM,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CACnD,GACE,OAAO,GACP,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAGxB,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,SAAS;IAClE,GAAG,EAAE,MAAM,GAAG,CAAA;IACd,MAAM,EAAE,MAAM,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CACnD,GACE,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,GAC/B,EAAE,CAAA;AAKL,MAAM,MAAM,aAAa,CACxB,OAAO,SAAS,oBAAoB,EACpC,UAAU,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,IAC/D,cAAc,CAAC,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAkBvE,MAAM,MAAM,mBAAmB,CAC9B,aAAa,SAAS,oBAAoB,EAC1C,gBAAgB,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,IACrE;IACH,GAAG,EAAE,aAAa,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;IACnD,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,CACpC,MAAM,EAAE,eAAe,KACnB,oBAAoB,CAAA;AAEzB,MAAM,MAAM,yBAAyB,CACpC,aAAa,SAAS,oBAAoB,IACvC,CACH,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,EACxC,OAAO,EAAE,gBAAgB,KACrB,uBAAuB,CAAA"}
1
+ {"version":3,"file":"database.types.d.ts","sourceRoot":"","sources":["../src/database.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAE/D,OAAO,KAAK,EACX,iBAAiB,EACjB,8BAA8B,EAC9B,MAAM,qCAAqC,CAAA;AAC5C,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAChB,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,2CAA2C,CAAA;AAClD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yCAAyC,CAAA;AACtF,OAAO,KAAK,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,WAAW,EACX,uBAAuB,EACvB,MAAM,6CAA6C,CAAA;AACpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAA;AAE/E,MAAM,MAAM,eAAe,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAA;CACX,CAAA;AAGD,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,YAAY,CAAA;AAG3D,MAAM,MAAM,eAAe,GAAG;IAC7B,WAAW,CAAC,EAAE;QACb,WAAW,EAAE,MAAM,CAAA;QACnB,eAAe,EAAE,MAAM,CAAA;KACvB,CAAA;IAED,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IAEd,WAAW,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAGD,MAAM,MAAM,cAAc,GACvB,kBAAkB,GAClB,gBAAgB,GAChB,iBAAiB,GACjB,cAAc,CAAA;AAGjB,MAAM,MAAM,kBAAkB,GAAG;IAChC,cAAc,CAAC,EAAE,cAAc,CAAA;CAC/B,CAAA;AASD,MAAM,MAAM,uBAAuB,CAClC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,EAC3D,UAAU,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,IAC/D;IACH,OAAO,EAAE,YAAY,CAAA;IACrB,UAAU,EAAE,eAAe,CAAA;IAC3B,cAAc,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,OAAO,CAAA;IACpD,iBAAiB,CAAC,EAAE,CACnB,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAClC,OAAO,EAAE,gBAAgB,KACrB,UAAU,GAAG,uBAAuB,CAAA;CACzC,CAAA;AASD,MAAM,MAAM,qBAAqB,CAChC,OAAO,SAAS,0BAA0B,GAAG,0BAA0B,IACpE;IACH,OAAO,EAAE,UAAU,CAAA;IACnB,QAAQ,EAAE,eAAe,CAAA;IACzB,cAAc,EAAE,CAAC,MAAM,EAAE,mBAAmB,KAAK,OAAO,CAAA;CACxD,CAAA;AAED,MAAM,MAAM,qBAAqB,CAChC,OAAO,SAAS,oBAAoB,GAAG,oBAAoB,EAC3D,UAAU,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,IAC/D,qBAAqB,GAAG,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;AAqBxE,MAAM,WAAW,uBAAuB;CAAG;AAG3C,MAAM,MAAM,gBAAgB,GAAG,uBAAuB,SAAS;IAC9D,GAAG,EAAE,MAAM,GAAG,CAAA;CACd,GACE,GAAG,GACH,OAAO,CAAA;AAGV,MAAM,MAAM,cAAc,GAAG,uBAAuB,SAAS;IAC5D,MAAM,EAAE,MAAM,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CACnD,GACE,OAAO,GACP,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AASxB,MAAM,MAAM,oBAAoB,GAAG,uBAAuB,SAAS;IAClE,MAAM,EAAE,MAAM,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;CACzD,GACE,uBAAuB,CAAC,OAAO,CAAC,GAChC,uBAAuB,SAAS;IAC/B,GAAG,EAAE,MAAM,GAAG,CAAA;IACd,MAAM,EAAE,MAAM,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CACnD,GACA,iBAAiB,CAAC,GAAG,EAAE,OAAO,CAAC,GAC/B,EAAE,CAAA;AASN,MAAM,MAAM,yBAAyB,CACpC,aAAa,SAAS,0BAA0B,IAC7C;IACH,MAAM,EAAE,uBAAuB,CAAC,aAAa,CAAC,CAAA;CAC9C,CAAA;AAKD,MAAM,MAAM,aAAa,CACxB,OAAO,SAAS,oBAAoB,EACpC,UAAU,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,IAC/D,cAAc,CAAC,8BAA8B,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;AAkBvE,MAAM,MAAM,mBAAmB,CAC9B,aAAa,SAAS,oBAAoB,EAC1C,gBAAgB,SAAS,uBAAuB,GAAG,SAAS,GAAG,SAAS,IACrE;IACH,GAAG,EAAE,aAAa,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAA;IACnD,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAA;CACxC,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG,CACpC,MAAM,EAAE,eAAe,KACnB,oBAAoB,CAAA;AAEzB,MAAM,MAAM,yBAAyB,CACpC,aAAa,SAAS,oBAAoB,IACvC,CACH,MAAM,EAAE,iBAAiB,CAAC,aAAa,CAAC,EACxC,OAAO,EAAE,gBAAgB,KACrB,uBAAuB,CAAA"}
@@ -1,9 +1,3 @@
1
- import type { DatabaseModuleOptions } from '../database.types.js';
2
- export interface AdapterStrategy {
3
- runTransaction(db: unknown, fn: (tx: unknown) => Promise<unknown>, isolationLevel?: string): Promise<unknown>;
4
- }
5
- export declare function createDrizzleClient(options: DatabaseModuleOptions, schema: Record<string, unknown>): Promise<{
6
- db: unknown;
7
- strategy: AdapterStrategy;
8
- }>;
1
+ import type { DatabaseOptions } from '../database.types.js';
2
+ export declare function createDrizzleClient(options: DatabaseOptions, schema: Record<string, unknown>): Promise<unknown>;
9
3
  //# sourceMappingURL=client.drizzle.d.ts.map
@@ -1 +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;AAEhE,MAAM,WAAW,eAAe;IAC/B,cAAc,CACb,EAAE,EAAE,OAAO,EACX,EAAE,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,EACrC,cAAc,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,OAAO,CAAC,CAAA;CACnB;AAoBD,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,qBAAqB,EAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC;IACV,EAAE,EAAE,OAAO,CAAA;IACX,QAAQ,EAAE,eAAe,CAAA;CACzB,CAAC,CAMD"}
1
+ {"version":3,"file":"client.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/client.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAE1D,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,OAAO,CAAC,CAKlB"}
@@ -1,18 +1,7 @@
1
- class PostgresqlStrategy {
2
- async runTransaction(db, fn, isolationLevel) {
3
- const pgDb = db;
4
- return pgDb.transaction(fn, isolationLevel
5
- ? {
6
- isolationLevel,
7
- }
8
- : undefined);
9
- }
10
- }
11
1
  export async function createDrizzleClient(options, schema) {
12
2
  const { drizzle } = await import('drizzle-orm/node-postgres');
13
- return {
14
- db: drizzle(options.postgresql.url, { schema }),
15
- strategy: new PostgresqlStrategy(),
16
- };
3
+ return drizzle(options.url, {
4
+ schema,
5
+ });
17
6
  }
18
7
  //# sourceMappingURL=client.drizzle.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/client.drizzle.ts"],"names":[],"mappings":"AAUA,MAAM,kBAAkB;IACvB,KAAK,CAAC,cAAc,CACnB,EAAW,EACX,EAAqC,EACrC,cAAuB;QAEvB,MAAM,IAAI,GAAG,EAAuH,CAAA;QACpI,OAAO,IAAI,CAAC,WAAW,CACtB,EAAE,EACF,cAAc;YACb,CAAC,CAAC;gBACA,cAAc;aACd;YACF,CAAC,CAAC,SAAS,CACZ,CAAA;IACF,CAAC;CACD;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,OAA8B,EAC9B,MAA+B;IAK/B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;IAC7D,OAAO;QACN,EAAE,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,CAAC;QAC/C,QAAQ,EAAE,IAAI,kBAAkB,EAAE;KAClC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"client.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/client.drizzle.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACxC,OAAwB,EACxB,MAA+B;IAE/B,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAA;IAC7D,OAAO,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;QAC3B,MAAM;KACN,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { IDatabaseAdapter } from '../database.adapter.interface.js';
2
+ import type { PostgresqlModuleOptions } from '../database.types.js';
3
+ export declare function createPostgresqlAdapter(options: PostgresqlModuleOptions): IDatabaseAdapter;
4
+ //# sourceMappingURL=postgresql.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgresql.adapter.d.ts","sourceRoot":"","sources":["../../src/drizzle/postgresql.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACX,gBAAgB,EAEhB,MAAM,iCAAiC,CAAA;AACxC,OAAO,KAAK,EACX,uBAAuB,EAEvB,MAAM,qBAAqB,CAAA;AAiD5B,wBAAgB,uBAAuB,CACtC,OAAO,EAAE,uBAAuB,GAC9B,gBAAgB,CAkClB"}
@@ -0,0 +1,42 @@
1
+ import { relations as drizzleRelations } from 'drizzle-orm';
2
+ import { createDrizzleClient } from '../drizzle/client.drizzle.js';
3
+ import { createSchemaBuilder, materializeSchema, } from '../drizzle/schema-builder.drizzle.js';
4
+ import { TableRepository } from '../repository/table-repository.js';
5
+ const transaction = {
6
+ async run(client, work, options) {
7
+ const db = client;
8
+ return (await db.transaction((tx) => work(tx), options?.isolationLevel
9
+ ? {
10
+ isolationLevel: options.isolationLevel,
11
+ }
12
+ : undefined));
13
+ },
14
+ };
15
+ export function createPostgresqlAdapter(options) {
16
+ return {
17
+ createRepository({ getClient, table, tableName }) {
18
+ return new TableRepository(getClient, tableName, table);
19
+ },
20
+ async initialize() {
21
+ const tables = materializeSchema(options.schemaResolver(createSchemaBuilder()));
22
+ let schema = {
23
+ ...tables,
24
+ };
25
+ if (options.relationsResolver) {
26
+ const resolved = options.relationsResolver(tables, {
27
+ relations: drizzleRelations,
28
+ });
29
+ schema = {
30
+ ...tables,
31
+ ...resolved,
32
+ };
33
+ }
34
+ return {
35
+ client: await createDrizzleClient(options.postgresql, schema),
36
+ tables,
37
+ };
38
+ },
39
+ transaction,
40
+ };
41
+ }
42
+ //# sourceMappingURL=postgresql.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgresql.adapter.js","sourceRoot":"","sources":["../../src/drizzle/postgresql.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAc,MAAM,aAAa,CAAA;AAWvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EACN,mBAAmB,EACnB,iBAAiB,GACjB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAA;AAiBlE,MAAM,WAAW,GAAyB;IACzC,KAAK,CAAC,GAAG,CACR,MAAe,EACf,IAA2C,EAC3C,OAA4B;QAE5B,MAAM,EAAE,GAAG,MAAuB,CAAA;QAElC,OAAO,CAAC,MAAM,EAAE,CAAC,WAAW,CAC3B,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAqB,EACpC,OAAO,EAAE,cAAc;YACtB,CAAC,CAAC;gBACA,cAAc,EAAE,OAAO,CAAC,cAAc;aACtC;YACF,CAAC,CAAC,SAAS,CACZ,CAAY,CAAA;IACd,CAAC;CACD,CAAA;AAQD,MAAM,UAAU,uBAAuB,CACtC,OAAgC;IAEhC,OAAO;QACN,gBAAgB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;YAC/C,OAAO,IAAI,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,KAAc,CAAC,CAAA;QACjE,CAAC;QAED,KAAK,CAAC,UAAU;YACf,MAAM,MAAM,GAAG,iBAAiB,CAC/B,OAAO,CAAC,cAAc,CAAC,mBAAmB,EAAE,CAAC,CAC7C,CAAA;YAED,IAAI,MAAM,GAA4B;gBACrC,GAAG,MAAM;aACT,CAAA;YAED,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,CAAC,MAAe,EAAE;oBAC3D,SAAS,EAAE,gBAAgB;iBAC3B,CAA4B,CAAA;gBAE7B,MAAM,GAAG;oBACR,GAAG,MAAM;oBACT,GAAG,QAAQ;iBACX,CAAA;YACF,CAAC;YAED,OAAO;gBACN,MAAM,EAAE,MAAM,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,MAAM,CAAC;gBAC7D,MAAM;aACN,CAAA;QACF,CAAC;QAED,WAAW;KACX,CAAA;AACF,CAAC"}
@@ -12,6 +12,6 @@ type MaterializePg<TResult extends SchemaResolverResult> = {
12
12
  };
13
13
  export type MaterializeSchema<TResult extends SchemaResolverResult> = MaterializePg<TResult>;
14
14
  export declare function materializeSchema<TResult extends SchemaResolverResult>(resolverResult: TResult): MaterializePg<TResult>;
15
- export type MaterializeSchemaWithRelations<TTableResult extends SchemaResolverResult, TRelationsResult extends RelationsResolverResult | undefined> = MaterializeSchema<TTableResult> & (TRelationsResult extends RelationsResolverResult ? TRelationsResult : Record<string, never>);
15
+ export type MaterializeSchemaWithRelations<TTableResult extends SchemaResolverResult, TRelationsResult extends RelationsResolverResult | undefined> = TRelationsResult extends RelationsResolverResult ? MaterializeSchema<TTableResult> & TRelationsResult : MaterializeSchema<TTableResult>;
16
16
  export {};
17
17
  //# sourceMappingURL=schema-builder.drizzle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-builder.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/schema-builder.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,aAAa,CAAA;AACzE,OAAO,KAAK,EACX,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EACX,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,2CAA2C,CAAA;AAUlD,wBAAgB,mBAAmB,IAAI,eAAe,CAGrD;AAYD,KAAK,aAAa,CAAC,OAAO,SAAS,oBAAoB,IAAI;KACzD,CAAC,IAAI,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GACjE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,kBAAkB,CAAC;QACnB,IAAI,EAAE,CAAC,CAAA;QACP,MAAM,EAAE,SAAS,CAAA;QACjB,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACjC,OAAO,EAAE,IAAI,CAAA;KACb,CAAC,GACD,KAAK,GACN,KAAK;CACR,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,oBAAoB,IACjE,aAAa,CAAC,OAAO,CAAC,CAAA;AAEvB,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,oBAAoB,EACrE,cAAc,EAAE,OAAO,GACrB,aAAa,CAAC,OAAO,CAAC,CAAA;AAYzB,MAAM,MAAM,8BAA8B,CACzC,YAAY,SAAS,oBAAoB,EACzC,gBAAgB,SAAS,uBAAuB,GAAG,SAAS,IACzD,iBAAiB,CAAC,YAAY,CAAC,GAClC,CAAC,gBAAgB,SAAS,uBAAuB,GAC9C,gBAAgB,GAChB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"schema-builder.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/schema-builder.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAA4B,MAAM,aAAa,CAAA;AACzE,OAAO,KAAK,EACX,mBAAmB,EACnB,kBAAkB,EAClB,MAAM,qBAAqB,CAAA;AAG5B,OAAO,KAAK,EACX,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,MAAM,2CAA2C,CAAA;AAYlD,wBAAgB,mBAAmB,IAAI,eAAe,CAMrD;AAYD,KAAK,aAAa,CAAC,OAAO,SAAS,oBAAoB,IAAI;KACzD,CAAC,IAAI,MAAM,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GACjE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,GAC5C,kBAAkB,CAAC;QACnB,IAAI,EAAE,CAAC,CAAA;QACP,MAAM,EAAE,SAAS,CAAA;QACjB,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAA;QACjC,OAAO,EAAE,IAAI,CAAA;KACb,CAAC,GACD,KAAK,GACN,KAAK;CACR,CAAA;AAED,MAAM,MAAM,iBAAiB,CAAC,OAAO,SAAS,oBAAoB,IACjE,aAAa,CAAC,OAAO,CAAC,CAAA;AAEvB,wBAAgB,iBAAiB,CAAC,OAAO,SAAS,oBAAoB,EACrE,cAAc,EAAE,OAAO,GACrB,aAAa,CAAC,OAAO,CAAC,CAAA;AAYzB,MAAM,MAAM,8BAA8B,CACzC,YAAY,SAAS,oBAAoB,EACzC,gBAAgB,SAAS,uBAAuB,GAAG,SAAS,IACzD,gBAAgB,SAAS,uBAAuB,GACjD,iBAAiB,CAAC,YAAY,CAAC,GAAG,gBAAgB,GAClD,iBAAiB,CAAC,YAAY,CAAC,CAAA"}
@@ -1,12 +1,17 @@
1
1
  import * as pgCore from 'drizzle-orm/pg-core';
2
2
  const tableBuilder = {
3
3
  table(columns) {
4
- return { __columns: columns };
4
+ return {
5
+ __columns: columns,
6
+ };
5
7
  },
6
8
  };
7
9
  export function createSchemaBuilder() {
8
10
  const { pgTable: _pgTable, ...pgColumns } = pgCore;
9
- return { ...tableBuilder, ...pgColumns };
11
+ return {
12
+ ...tableBuilder,
13
+ ...pgColumns,
14
+ };
10
15
  }
11
16
  function createTable(tableName, columns) {
12
17
  return pgCore.pgTable(tableName, columns);
@@ -1 +1 @@
1
- {"version":3,"file":"schema-builder.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/schema-builder.drizzle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAS7C,MAAM,YAAY,GAAG;IACpB,KAAK,CACJ,OAAiB;QAEjB,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IAC9B,CAAC;CACD,CAAA;AAED,MAAM,UAAU,mBAAmB;IAClC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAA;IAClD,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,SAAS,EAAqB,CAAA;AAC5D,CAAC;AAED,SAAS,WAAW,CACnB,SAAiB,EACjB,OAAgC;IAEhC,OAAO,MAAM,CAAC,OAAO,CACpB,SAAS,EACT,OAAqD,CACrD,CAAA;AACF,CAAC;AAqBD,MAAM,UAAU,iBAAiB,CAChC,cAAoC;IAEpC,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;QAC9D,SAAS;QACT,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;KAC3C,CAAC,CACF,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"schema-builder.drizzle.js","sourceRoot":"","sources":["../../src/drizzle/schema-builder.drizzle.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAS7C,MAAM,YAAY,GAAG;IACpB,KAAK,CACJ,OAAiB;QAEjB,OAAO;YACN,SAAS,EAAE,OAAO;SAClB,CAAA;IACF,CAAC;CACD,CAAA;AAED,MAAM,UAAU,mBAAmB;IAClC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAE,GAAG,MAAM,CAAA;IAClD,OAAO;QACN,GAAG,YAAY;QACf,GAAG,SAAS;KACO,CAAA;AACrB,CAAC;AAED,SAAS,WAAW,CACnB,SAAiB,EACjB,OAAgC;IAEhC,OAAO,MAAM,CAAC,OAAO,CACpB,SAAS,EACT,OAAqD,CACrD,CAAA;AACF,CAAC;AAqBD,MAAM,UAAU,iBAAiB,CAChC,cAAoC;IAEpC,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC;QAC9D,SAAS;QACT,WAAW,CAAC,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC;KAC3C,CAAC,CACF,CAAA;AACF,CAAC"}