@wisemen/nestjs-typeorm 0.0.37 → 0.1.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.
@@ -1,3 +1,3 @@
1
1
  import { ColumnOptions } from 'typeorm';
2
2
  export type TimeColumnOptions = Omit<ColumnOptions, 'type' | 'transformer'>;
3
- export declare function TimeColumn(options?: TimeColumnOptions): PropertyDecorator;
3
+ export declare function PlainTimeColumn(options?: TimeColumnOptions): PropertyDecorator;
@@ -1,7 +1,7 @@
1
1
  import { applyDecorators } from '@nestjs/common';
2
2
  import { Column } from 'typeorm';
3
3
  import { TypeormTimeTransformer } from '@wisemen/time';
4
- export function TimeColumn(options) {
4
+ export function PlainTimeColumn(options) {
5
5
  return applyDecorators(Column({
6
6
  ...options,
7
7
  type: 'time',
@@ -1 +1 @@
1
- {"version":3,"file":"time-column.js","sourceRoot":"","sources":["../../lib/columns/time-column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAItD,MAAM,UAAU,UAAU,CAAE,OAA2B;IACrD,OAAO,eAAe,CACpB,MAAM,CAAC;QACL,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE;KAC3C,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,eAAe;IACX,MAAM,CAAC,QAAQ,CAAoC;IAEpD,MAAM,CAAC,WAAW;QACvB,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3C,eAAe,CAAC,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;QACzD,CAAC;QAED,OAAO,eAAe,CAAC,QAAQ,CAAA;IACjC,CAAC;CACF"}
1
+ {"version":3,"file":"time-column.js","sourceRoot":"","sources":["../../lib/columns/time-column.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,MAAM,EAAiB,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAItD,MAAM,UAAU,eAAe,CAAE,OAA2B;IAC1D,OAAO,eAAe,CACpB,MAAM,CAAC;QACL,GAAG,OAAO;QACV,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,eAAe,CAAC,WAAW,EAAE;KAC3C,CAAC,CACH,CAAA;AACH,CAAC;AAED,MAAM,eAAe;IACX,MAAM,CAAC,QAAQ,CAAoC;IAEpD,MAAM,CAAC,WAAW;QACvB,IAAI,eAAe,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3C,eAAe,CAAC,QAAQ,GAAG,IAAI,sBAAsB,EAAE,CAAA;QACzD,CAAC;QAED,OAAO,eAAe,CAAC,QAAQ,CAAA;IACjC,CAAC;CACF"}
@@ -0,0 +1,6 @@
1
+ import { AsyncLocalStorage } from 'async_hooks';
2
+ import type { EntityManager } from 'typeorm';
3
+ export declare const transactionStorage: AsyncLocalStorage<EntityManager | null>;
4
+ export declare const readonlyStorage: AsyncLocalStorage<EntityManager | null>;
5
+ export declare function isInTransaction(): boolean;
6
+ export declare function isInReadonly(): boolean;
@@ -0,0 +1,10 @@
1
+ import { AsyncLocalStorage } from 'async_hooks';
2
+ export const transactionStorage = new AsyncLocalStorage();
3
+ export const readonlyStorage = new AsyncLocalStorage();
4
+ export function isInTransaction() {
5
+ return transactionStorage.getStore() != null;
6
+ }
7
+ export function isInReadonly() {
8
+ return readonlyStorage.getStore() != null;
9
+ }
10
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","sourceRoot":"","sources":["../../lib/extensions/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAG/C,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAwB,CAAA;AAC/E,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,iBAAiB,EAAwB,CAAA;AAE5E,MAAM,UAAU,eAAe;IAC7B,OAAO,kBAAkB,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAA;AAC9C,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,OAAO,eAAe,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAA;AAC3C,CAAC"}
@@ -2,3 +2,4 @@ export * from './create-providers.js';
2
2
  export * from './module.js';
3
3
  export * from './repository.js';
4
4
  export * from './transaction.js';
5
+ export * from './readonly.js';
@@ -2,4 +2,5 @@ export * from './create-providers.js';
2
2
  export * from './module.js';
3
3
  export * from './repository.js';
4
4
  export * from './transaction.js';
5
+ export * from './readonly.js';
5
6
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/extensions/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,aAAa,CAAA;AAC3B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAChC,cAAc,eAAe,CAAA"}
@@ -0,0 +1,3 @@
1
+ import type { DataSource, EntityManager } from 'typeorm';
2
+ export declare function readonly<T>(dataSource: DataSource, fn: () => Promise<T>): Promise<T>;
3
+ export declare function createReadonlyManagerProxy(defaultManager: EntityManager): EntityManager;
@@ -0,0 +1,37 @@
1
+ import { QueryRunnerProviderAlreadyReleasedError } from 'typeorm';
2
+ import { isInTransaction, readonlyStorage } from './context.js';
3
+ export async function readonly(dataSource, fn) {
4
+ // Disallow starting a readonly scope while in a transaction
5
+ if (isInTransaction()) {
6
+ throw new Error('Cannot start a readonly context inside a transaction');
7
+ }
8
+ const existing = readonlyStorage.getStore();
9
+ if (existing?.queryRunner != null && existing.queryRunner.isReleased) {
10
+ throw new QueryRunnerProviderAlreadyReleasedError();
11
+ }
12
+ if (existing != null) {
13
+ return await fn();
14
+ }
15
+ const queryRunner = dataSource.createQueryRunner('slave');
16
+ try {
17
+ return await readonlyStorage.run(queryRunner.manager, fn);
18
+ }
19
+ finally {
20
+ await queryRunner.release();
21
+ }
22
+ }
23
+ export function createReadonlyManagerProxy(defaultManager) {
24
+ return new Proxy(defaultManager, {
25
+ get(target, prop) {
26
+ const manager = readonlyStorage.getStore();
27
+ if (manager != null) {
28
+ if (prop === 'transaction') {
29
+ return (async () => { throw new Error('Cannot call EntityManager.transaction inside a readonly context'); });
30
+ }
31
+ return manager[prop];
32
+ }
33
+ return target[prop];
34
+ }
35
+ });
36
+ }
37
+ //# sourceMappingURL=readonly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"readonly.js","sourceRoot":"","sources":["../../lib/extensions/readonly.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uCAAuC,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAE/D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,UAAsB,EACtB,EAAoB;IAEpB,4DAA4D;IAC5D,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,QAAQ,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAA;IAC3C,IAAI,QAAQ,EAAE,WAAW,IAAI,IAAI,IAAI,QAAQ,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACrE,MAAM,IAAI,uCAAuC,EAAE,CAAA;IACrD,CAAC;IAED,IAAI,QAAQ,IAAI,IAAI,EAAE,CAAC;QACrB,OAAO,MAAM,EAAE,EAAE,CAAA;IACnB,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;IAEzD,IAAI,CAAC;QACH,OAAO,MAAM,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC3D,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,OAAO,EAAE,CAAA;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAE,cAA6B;IACvE,OAAO,IAAI,KAAK,CAAC,cAAc,EAAE;QAC/B,GAAG,CAAE,MAAM,EAAE,IAAI;YACf,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAA;YAC1C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;oBAC3B,OAAO,CAAC,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAA,CAAC,CAAC,CAAY,CAAA;gBACxH,CAAC;gBACD,OAAO,OAAO,CAAC,IAAI,CAAY,CAAA;YACjC,CAAC;YAED,OAAO,MAAM,CAAC,IAAI,CAAY,CAAA;QAChC,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { And, Equal, FindOperator, LessThan, MoreThan, Repository } from 'typeorm';
2
2
  import { createTransactionManagerProxy } from './transaction.js';
3
+ import { createReadonlyManagerProxy } from './readonly.js';
3
4
  export class TypeOrmRepository extends Repository {
4
5
  constructor(entity, manager) {
5
- super(entity, createTransactionManagerProxy(manager));
6
+ const proxy = createTransactionManagerProxy(createReadonlyManagerProxy(manager));
7
+ super(entity, proxy);
6
8
  }
7
9
  async findNextBatch(options, batchSize, lastEntity) {
8
10
  const primaryKeys = this.metadata.primaryColumns.map(column => column.propertyName);
@@ -1 +1 @@
1
- {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../lib/extensions/repository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repository.js","sourceRoot":"","sources":["../../lib/extensions/repository.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
- import { AsyncLocalStorage } from 'async_hooks';
2
- const transactionStorage = new AsyncLocalStorage();
1
+ import { isInReadonly, transactionStorage } from './context.js';
3
2
  export async function transaction(dataSource, runInTransaction) {
3
+ if (isInReadonly()) {
4
+ throw new Error('Cannot start a transaction inside a readonly context');
5
+ }
4
6
  const transactionManager = transactionStorage.getStore();
5
7
  if (transactionManager != null) {
6
8
  return await transactionManager.transaction(runInTransaction);
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../lib/extensions/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAG/C,MAAM,kBAAkB,GAAG,IAAI,iBAAiB,EAAwB,CAAA;AAExE,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAsB,EACtB,gBAA8D;IAE9D,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAA;IAExD,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;QAC/B,OAAO,MAAM,kBAAkB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACpD,OAAO,MAAM,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACtD,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAE,OAAsB;IACnE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAE,MAAM,EAAE,IAAI;YACf,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAA;YAE7C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,OAAO,OAAO,CAAC,IAAI,CAAY,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,CAAC,IAAI,CAAY,CAAA;YAChC,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../lib/extensions/transaction.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAE/D,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,UAAsB,EACtB,gBAA8D;IAE9D,IAAI,YAAY,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IACD,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAA;IAExD,IAAI,kBAAkB,IAAI,IAAI,EAAE,CAAC;QAC/B,OAAO,MAAM,kBAAkB,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAA;IAC/D,CAAC;IAED,OAAO,MAAM,UAAU,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACpD,OAAO,MAAM,kBAAkB,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,IAAI,EAAE;YACtD,OAAO,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAE,OAAsB;IACnE,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE;QACxB,GAAG,CAAE,MAAM,EAAE,IAAI;YACf,MAAM,OAAO,GAAG,kBAAkB,CAAC,QAAQ,EAAE,CAAA;YAE7C,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;gBACpB,OAAO,OAAO,CAAC,IAAI,CAAY,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,OAAO,MAAM,CAAC,IAAI,CAAY,CAAA;YAChC,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/nestjs-typeorm",
3
- "version": "0.0.37",
3
+ "version": "0.1.1",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",
@@ -18,8 +18,8 @@
18
18
  "release": "pnpx release-it"
19
19
  },
20
20
  "devDependencies": {
21
- "@types/node": "^24.10.1",
22
- "eslint": "^9.39.1",
21
+ "@types/node": "^25.0.3",
22
+ "eslint": "^9.39.2",
23
23
  "expect": "^30.2.0",
24
24
  "typescript": "^5.9.3"
25
25
  },
@@ -30,14 +30,14 @@
30
30
  "url": "git@github.com:wisemen-digital/node-core.git"
31
31
  },
32
32
  "peerDependencies": {
33
- "@nestjs/common": "^11.1.9",
33
+ "@nestjs/common": "^11.1.11",
34
34
  "@nestjs/config": "^4.0.2",
35
35
  "@nestjs/typeorm": "^11.0.0",
36
- "@wisemen/coordinates": "^0.0.12",
37
- "@wisemen/time": "^0.0.28",
36
+ "@wisemen/coordinates": "^0.0.13",
37
+ "@wisemen/time": "^0.0.29",
38
38
  "change-case": "^5.4.4",
39
39
  "class-validator": "^0.14.3",
40
40
  "pg": "8.16.3",
41
- "typeorm": "^0.3.27"
41
+ "typeorm": "^0.3.28"
42
42
  }
43
43
  }