@turystack/nestjs-database 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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,EAEX,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EAEpB,MAAM,2CAA2C,CAAA;AAqBlD,wBAAgB,mBAAmB,IAAI,eAAe,CAMrD;AA8BD,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
+ {"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,EAEX,SAAS,EACT,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EAGpB,MAAM,2CAA2C,CAAA;AAqBlD,wBAAgB,mBAAmB,IAAI,eAAe,CAMrD;AAsCD,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;AAkBzB,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"}
@@ -21,13 +21,16 @@ export function createSchemaBuilder() {
21
21
  function snakeCase(name) {
22
22
  return name.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);
23
23
  }
24
- function createTable(tableName, columns, constraints) {
25
- return pgCore.pgTable(snakeCase(tableName), columns, constraints);
24
+ function createTable(tableName, columns, constraints, tables) {
25
+ return pgCore.pgTable(snakeCase(tableName), columns, (constraints
26
+ ? (self) => constraints(self, tables)
27
+ : undefined));
26
28
  }
27
29
  export function materializeSchema(resolverResult) {
28
- return Object.fromEntries(Object.entries(resolverResult).map(([tableName, columnMap]) => [
29
- tableName,
30
- createTable(tableName, columnMap.__columns, columnMap.__constraints),
31
- ]));
30
+ const tables = {};
31
+ for (const [tableName, columnMap] of Object.entries(resolverResult)) {
32
+ tables[tableName] = createTable(tableName, columnMap.__columns, columnMap.__constraints, tables);
33
+ }
34
+ return tables;
32
35
  }
33
36
  //# sourceMappingURL=schema-builder.drizzle.js.map
@@ -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;AAW7C,MAAM,YAAY,GAAG;IACpB,KAAK,CACJ,OAAiB,EACjB,WAAwC;QAKxC,OAAO,WAAW;YACjB,CAAC,CAAC;gBACA,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,WAAW;aAC1B;YACF,CAAC,CAAC;gBACA,SAAS,EAAE,OAAO;aAClB,CAAA;IACJ,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;AAWD,SAAS,SAAS,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,WAAW,CACnB,SAAiB,EACjB,OAAgC,EAChC,WAAiC;IAKjC,OAAO,MAAM,CAAC,OAAO,CACpB,SAAS,CAAC,SAAS,CAAC,EACpB,OAAqD,EACrD,WAAoB,CACpB,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,EAAE,SAAS,CAAC,aAAa,CAAC;KACpE,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;AAY7C,MAAM,YAAY,GAAG;IACpB,KAAK,CACJ,OAAiB,EACjB,WAAwC;QAKxC,OAAO,WAAW;YACjB,CAAC,CAAC;gBACA,SAAS,EAAE,OAAO;gBAClB,aAAa,EAAE,WAAW;aAC1B;YACF,CAAC,CAAC;gBACA,SAAS,EAAE,OAAO;aAClB,CAAA;IACJ,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;AAWD,SAAS,SAAS,CAAC,IAAY;IAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,WAAW,EAAE,EAAE,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,WAAW,CACnB,SAAiB,EACjB,OAAgC,EAChC,WAA4C,EAC5C,MAAoB;IAUpB,OAAO,MAAM,CAAC,OAAO,CACpB,SAAS,CAAC,SAAS,CAAC,EACpB,OAAqD,EACrD,CAAC,WAAW;QACX,CAAC,CAAC,CAAC,IAAW,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC;QAC5C,CAAC,CAAC,SAAS,CAAU,CACtB,CAAA;AACF,CAAC;AAqBD,MAAM,UAAU,iBAAiB,CAChC,cAAoC;IAEpC,MAAM,MAAM,GAA0B,EAAE,CAAA;IAExC,KAAK,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC,GAAG,WAAW,CAC9B,SAAS,EACT,SAAS,CAAC,SAAS,EACnB,SAAS,CAAC,aAAa,EACvB,MAAsB,CACtB,CAAA;IACF,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import type { BuildExtraConfigColumns, ColumnBuilderBase, Relation, Relations, relations } from 'drizzle-orm';
2
2
  import type * as PgCore from 'drizzle-orm/pg-core';
3
- export type TableConstraints<TColumns extends Record<string, ColumnBuilderBase>> = (columns: BuildExtraConfigColumns<string, TColumns, 'pg'>) => PgCore.PgTableExtraConfigValue[];
4
- export type AnyTableConstraints = (columns: never) => PgCore.PgTableExtraConfigValue[];
3
+ export type SchemaTables = Record<string, PgCore.PgTable & Record<string, PgCore.PgColumn>>;
4
+ export type TableConstraints<TColumns extends Record<string, ColumnBuilderBase>> = (columns: BuildExtraConfigColumns<string, TColumns, 'pg'>, tables: SchemaTables) => PgCore.PgTableExtraConfigValue[];
5
+ export type AnyTableConstraints = (columns: never, tables: SchemaTables) => PgCore.PgTableExtraConfigValue[];
5
6
  export type ColumnMap<TColumns extends Record<string, ColumnBuilderBase>> = {
6
7
  readonly __columns: TColumns;
7
8
  readonly __constraints?: AnyTableConstraints;
@@ -1 +1 @@
1
- {"version":3,"file":"schema-builder.types.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/schema-builder.types.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,uBAAuB,EACvB,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,KAAK,MAAM,MAAM,qBAAqB,CAAA;AA2BlD,MAAM,MAAM,gBAAgB,CAC3B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAC/C,CACH,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,KACpD,MAAM,CAAC,uBAAuB,EAAE,CAAA;AAWrC,MAAM,MAAM,mBAAmB,GAAG,CACjC,OAAO,EAAE,KAAK,KACV,MAAM,CAAC,uBAAuB,EAAE,CAAA;AAErC,MAAM,MAAM,SAAS,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI;IAC3E,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAA;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAA;CAC5C,CAAA;AAED,UAAU,kBAAkB;IAC3B,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACvD,OAAO,EAAE,QAAQ,EACjB,WAAW,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GACtC,SAAS,CAAC,QAAQ,CAAC,CAAA;CACtB;AAGD,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC/C,IAAI,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,CAAA;AAE/B,MAAM,MAAM,aAAa,GAAG,eAAe,CAAA;AAE3C,MAAM,MAAM,oBAAoB,GAAG,MAAM,CACxC,MAAM,EACN,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAC5C,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC3C,MAAM,EACN,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAC3C,CAAA;AAED,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,OAAO,SAAS,CAAA;CAC3B"}
1
+ {"version":3,"file":"schema-builder.types.drizzle.d.ts","sourceRoot":"","sources":["../../src/drizzle/schema-builder.types.drizzle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,uBAAuB,EACvB,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAoClD,MAAM,MAAM,YAAY,GAAG,MAAM,CAChC,MAAM,EACN,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAChD,CAAA;AAED,MAAM,MAAM,gBAAgB,CAC3B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAC/C,CACH,OAAO,EAAE,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EACxD,MAAM,EAAE,YAAY,KAChB,MAAM,CAAC,uBAAuB,EAAE,CAAA;AAWrC,MAAM,MAAM,mBAAmB,GAAG,CACjC,OAAO,EAAE,KAAK,EACd,MAAM,EAAE,YAAY,KAChB,MAAM,CAAC,uBAAuB,EAAE,CAAA;AAErC,MAAM,MAAM,SAAS,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI;IAC3E,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAA;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,mBAAmB,CAAA;CAC5C,CAAA;AAED,UAAU,kBAAkB;IAC3B,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACvD,OAAO,EAAE,QAAQ,EACjB,WAAW,CAAC,EAAE,gBAAgB,CAAC,QAAQ,CAAC,GACtC,SAAS,CAAC,QAAQ,CAAC,CAAA;CACtB;AAGD,MAAM,MAAM,eAAe,GAAG,kBAAkB,GAC/C,IAAI,CAAC,OAAO,MAAM,EAAE,SAAS,CAAC,CAAA;AAE/B,MAAM,MAAM,aAAa,GAAG,eAAe,CAAA;AAE3C,MAAM,MAAM,oBAAoB,GAAG,MAAM,CACxC,MAAM,EACN,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAC5C,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAC3C,MAAM,EACN,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAC3C,CAAA;AAED,MAAM,WAAW,gBAAgB;IAChC,SAAS,EAAE,OAAO,SAAS,CAAA;CAC3B"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@turystack/nestjs-database",
3
3
  "description": "Typed database module for NestJS: schema builder, per-table repositories, and transactional decorator. PostgreSQL (Drizzle) and DynamoDB adapters.",
4
4
  "private": false,
5
- "version": "4.0.0",
5
+ "version": "4.1.0",
6
6
  "type": "module",
7
7
  "sideEffects": false,
8
8
  "main": "./dist/index.js",