@turystack/nestjs-database 2.0.0 → 2.2.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,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
+ {"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;AAiBD,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,9 +1,14 @@
1
1
  import * as pgCore from 'drizzle-orm/pg-core';
2
2
  const tableBuilder = {
3
- table(columns) {
4
- return {
5
- __columns: columns,
6
- };
3
+ table(columns, constraints) {
4
+ return constraints
5
+ ? {
6
+ __columns: columns,
7
+ __constraints: constraints,
8
+ }
9
+ : {
10
+ __columns: columns,
11
+ };
7
12
  },
8
13
  };
9
14
  export function createSchemaBuilder() {
@@ -13,13 +18,13 @@ export function createSchemaBuilder() {
13
18
  ...pgColumns,
14
19
  };
15
20
  }
16
- function createTable(tableName, columns) {
17
- return pgCore.pgTable(tableName, columns);
21
+ function createTable(tableName, columns, constraints) {
22
+ return pgCore.pgTable(tableName, columns, constraints);
18
23
  }
19
24
  export function materializeSchema(resolverResult) {
20
25
  return Object.fromEntries(Object.entries(resolverResult).map(([tableName, columnMap]) => [
21
26
  tableName,
22
- createTable(tableName, columnMap.__columns),
27
+ createTable(tableName, columnMap.__columns, columnMap.__constraints),
23
28
  ]));
24
29
  }
25
30
  //# 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;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"}
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;AAED,SAAS,WAAW,CACnB,SAAiB,EACjB,OAAgC,EAChC,WAAiC;IAKjC,OAAO,MAAM,CAAC,OAAO,CACpB,SAAS,EACT,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,10 +1,13 @@
1
- import type { ColumnBuilderBase, Relation, Relations, relations } from 'drizzle-orm';
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
5
  export type ColumnMap<TColumns extends Record<string, ColumnBuilderBase>> = {
4
6
  readonly __columns: TColumns;
7
+ readonly __constraints?: AnyTableConstraints;
5
8
  };
6
9
  interface SchemaTableBuilder {
7
- table<TColumns extends Record<string, ColumnBuilderBase>>(columns: TColumns): ColumnMap<TColumns>;
10
+ table<TColumns extends Record<string, ColumnBuilderBase>>(columns: TColumns, constraints?: TableConstraints<TColumns>): ColumnMap<TColumns>;
8
11
  }
9
12
  export type PgSchemaBuilder = SchemaTableBuilder & Omit<typeof PgCore, 'pgTable'>;
10
13
  export type SchemaBuilder = PgSchemaBuilder;
@@ -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,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,SAAS,EACT,MAAM,aAAa,CAAA;AACpB,OAAO,KAAK,KAAK,MAAM,MAAM,qBAAqB,CAAA;AAOlD,MAAM,MAAM,SAAS,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,IAAI;IAC3E,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAA;CAC5B,CAAA;AAED,UAAU,kBAAkB;IAC3B,KAAK,CAAC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACvD,OAAO,EAAE,QAAQ,GACf,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;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"}
package/dist/index.d.ts CHANGED
@@ -8,5 +8,8 @@ export type { DatabaseModuleOptions, DatabaseServiceRegistry, InferDatabaseConfi
8
8
  export { getCurrentTx, onAfterCommit, onBeforeCommit, transactionState, } from './transaction.context.js';
9
9
  export type { IsolationLevel } from './transactional.js';
10
10
  export { Transactional } from './transactional.js';
11
+ export type { MaterializeSchema } from './drizzle/schema-builder.drizzle.js';
12
+ export type { ColumnMap, PgSchemaBuilder, RelationsHelpers, } from './drizzle/schema-builder.types.drizzle.js';
13
+ export type { DynamoAttribute, DynamoIndexes, DynamoSchemaBuilder, DynamoTableDefinition, DynamoTableMap, } from './dynamodb/schema-builder.types.dynamodb.js';
11
14
  export { RecordNotCreatedError, RecordNotFoundError, } from './repository/table-repository.errors.js';
12
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EACN,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,YAAY,EACX,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,GAChB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EACN,qBAAqB,EACrB,mBAAmB,GACnB,MAAM,yCAAyC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAkBA,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,EACN,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,YAAY,EACX,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,EACnB,yBAAyB,GACzB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,GAChB,MAAM,0BAA0B,CAAA;AACjC,YAAY,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAelD,YAAY,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,YAAY,EACX,SAAS,EACT,eAAe,EACf,gBAAgB,GAChB,MAAM,2CAA2C,CAAA;AAClD,YAAY,EACX,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,GACd,MAAM,6CAA6C,CAAA;AACpD,OAAO,EACN,qBAAqB,EACrB,mBAAmB,GACnB,MAAM,yCAAyC,CAAA"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAOvD,OAAO,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,GAChB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAElD,OAAO,EACN,qBAAqB,EACrB,mBAAmB,GACnB,MAAM,yCAAyC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAmBA,OAAO,EACN,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EACN,uBAAuB,EACvB,oBAAoB,EACpB,0BAA0B,GAC1B,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAOvD,OAAO,EACN,YAAY,EACZ,aAAa,EACb,cAAc,EACd,gBAAgB,GAChB,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AA4BlD,OAAO,EACN,qBAAqB,EACrB,mBAAmB,GACnB,MAAM,yCAAyC,CAAA"}
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": "2.0.0",
5
+ "version": "2.2.0",
6
6
  "type": "module",
7
7
  "sideEffects": false,
8
8
  "main": "./dist/index.js",