@wisemen/nestjs-typeorm 0.0.31 → 0.0.33

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,7 +1,11 @@
1
1
  import { DynamicModule } from '@nestjs/common';
2
- import { TypeOrmModule as TM } from '@nestjs/typeorm';
2
+ import { TypeOrmModule as TM, TypeOrmModuleAsyncOptions } from '@nestjs/typeorm';
3
3
  import { EntityClassOrSchema } from '@nestjs/typeorm/dist/interfaces/entity-class-or-schema.type.js';
4
4
  import { DataSource, DataSourceOptions } from 'typeorm';
5
+ export interface NestjsTypeOrmModuleAsyncOptions extends TypeOrmModuleAsyncOptions {
6
+ customDataTypes?: string[];
7
+ }
5
8
  export declare class TypeOrmModule extends TM {
6
9
  static forFeature(entities?: EntityClassOrSchema[], dataSource?: DataSource | DataSourceOptions | string): DynamicModule;
10
+ static forRootAsync(options: NestjsTypeOrmModuleAsyncOptions): DynamicModule;
7
11
  }
@@ -1,28 +1,41 @@
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 TypeOrmModule_1;
8
- import { Module } from '@nestjs/common';
9
- import { TypeOrmModule as TM } from '@nestjs/typeorm';
1
+ import assert from 'assert';
2
+ import { getDataSourceToken, TypeOrmModule as TM } from '@nestjs/typeorm';
10
3
  import { DEFAULT_DATA_SOURCE_NAME } from '@nestjs/typeorm/dist/typeorm.constants.js';
11
4
  import { EntitiesMetadataStorage } from '@nestjs/typeorm/dist/entities-metadata.storage.js';
12
5
  import { createTypeOrmProviders } from './create-providers.js';
13
- let TypeOrmModule = TypeOrmModule_1 = class TypeOrmModule extends TM {
6
+ export class TypeOrmModule extends TM {
14
7
  static forFeature(entities = [], dataSource = DEFAULT_DATA_SOURCE_NAME) {
15
8
  const providers = createTypeOrmProviders(entities, dataSource);
16
9
  EntitiesMetadataStorage.addEntitiesByDataSource(dataSource, [...entities]);
17
10
  return {
18
- module: TypeOrmModule_1,
11
+ module: TypeOrmModule,
19
12
  providers: providers,
20
13
  exports: providers
21
14
  };
22
15
  }
23
- };
24
- TypeOrmModule = TypeOrmModule_1 = __decorate([
25
- Module({})
26
- ], TypeOrmModule);
27
- export { TypeOrmModule };
16
+ static forRootAsync(options) {
17
+ const module = super.forRootAsync(options);
18
+ const dataSourceToken = getDataSourceToken(options);
19
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
20
+ // @ts-expect-error
21
+ // eslint-disable-next-line @stylistic/max-len
22
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
23
+ const dataSourceProvider = module.imports?.[0].providers?.find(provider => 'provide' in provider
24
+ && 'useFactory' in provider
25
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
26
+ && provider.provide === dataSourceToken);
27
+ assert(dataSourceProvider !== undefined, 'unable to find datasource provider');
28
+ const originalFactory = dataSourceProvider.useFactory;
29
+ dataSourceProvider.useFactory = async (dataSourceOptions) => {
30
+ const modifiedOptions = { ...dataSourceOptions };
31
+ const dataTypes = (options.customDataTypes ?? []);
32
+ modifiedOptions.driver ??= await import('pg');
33
+ // eslint-disable-next-line @stylistic/max-len
34
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
35
+ modifiedOptions.driver.supportedDataTypes.push(...dataTypes);
36
+ return await originalFactory(dataSourceOptions);
37
+ };
38
+ return module;
39
+ }
40
+ }
28
41
  //# sourceMappingURL=module.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../lib/extensions/module.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAiB,MAAM,EAAE,MAAM,gBAAgB,CAAA;AACtD,OAAO,EAAE,aAAa,IAAI,EAAE,EAAE,MAAM,iBAAiB,CAAA;AAGrD,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAA;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAGvD,IAAM,aAAa,qBAAnB,MAAM,aAAc,SAAQ,EAAE;IACnC,MAAM,CAAC,UAAU,CACf,WAAkC,EAAE,EACpC,aAGa,wBAAwB;QAErC,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAE9D,uBAAuB,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;QAE1E,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;SACnB,CAAA;IACH,CAAC;CACF,CAAA;AAlBY,aAAa;IADzB,MAAM,CAAC,EAAE,CAAC;GACE,aAAa,CAkBzB"}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../lib/extensions/module.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAE,kBAAkB,EAAE,aAAa,IAAI,EAAE,EAAmD,MAAM,iBAAiB,CAAA;AAG1H,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAA;AACpF,OAAO,EAAE,uBAAuB,EAAE,MAAM,mDAAmD,CAAA;AAE3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAQ9D,MAAM,OAAO,aAAc,SAAQ,EAAE;IACnC,MAAM,CAAC,UAAU,CACf,WAAkC,EAAE,EACpC,aAGa,wBAAwB;QAErC,MAAM,SAAS,GAAG,sBAAsB,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAA;QAE9D,uBAAuB,CAAC,uBAAuB,CAAC,UAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAA;QAE1E,OAAO;YACL,MAAM,EAAE,aAAa;YACrB,SAAS,EAAE,SAAS;YACpB,OAAO,EAAE,SAAS;SACnB,CAAA;IACH,CAAC;IAED,MAAM,CAAC,YAAY,CAAE,OAAwC;QAC3D,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC1C,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAuC,CAAC,CAAA;QAEnF,6DAA6D;QAC7D,mBAAmB;QACnB,8CAA8C;QAC9C,yGAAyG;QACzG,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CACxE,SAAS,IAAI,QAAQ;eAClB,YAAY,IAAI,QAAQ;YAC3B,sEAAsE;eACnE,QAAQ,CAAC,OAAO,KAAK,eAAe,CACS,CAAA;QAElD,MAAM,CAAC,kBAAkB,KAAK,SAAS,EAAE,oCAAoC,CAAC,CAAA;QAE9E,MAAM,eAAe,GAAG,kBAAkB,CAAC,UAAU,CAAA;QAErD,kBAAkB,CAAC,UAAU,GAAG,KAAK,EAAE,iBAAuC,EAAE,EAAE;YAChF,MAAM,eAAe,GAAG,EAAE,GAAG,iBAAiB,EAAE,CAAA;YAChD,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,CAAiB,CAAA;YAEjE,eAAe,CAAC,MAAM,KAAK,MAAM,MAAM,CAAC,IAAI,CAAC,CAAA;YAC7C,8CAA8C;YAC9C,yGAAyG;YACzG,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAA;YAE5D,OAAO,MAAM,eAAe,CAAC,iBAAiB,CAAC,CAAA;QACjD,CAAC,CAAA;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
@@ -1,2 +1,2 @@
1
- import { DataSource } from "typeorm";
1
+ import { DataSource } from 'typeorm';
2
2
  export declare const dataSource: DataSource;
@@ -1,6 +1,6 @@
1
- import { DataSource } from "typeorm";
2
- import { SnakeNamingStrategy } from "../../../naming/snake-case.naming-strategy.js";
3
- import { sslHelper } from "../../../helpers/ssl.js";
1
+ import { DataSource } from 'typeorm';
2
+ import { SnakeNamingStrategy } from '../../../naming/snake-case.naming-strategy.js';
3
+ import { sslHelper } from '../../../helpers/ssl.js';
4
4
  export const dataSource = new DataSource({
5
5
  name: 'default',
6
6
  type: 'postgres',
@@ -1 +1 @@
1
- {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../../lib/extensions/tests/sql/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;IACvC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;IAC7B,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACxC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IACjC,cAAc,EAAE,IAAI,mBAAmB,EAAE;CAC1C,CAAC,CAAA"}
1
+ {"version":3,"file":"datasource.js","sourceRoot":"","sources":["../../../../lib/extensions/tests/sql/datasource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAEnD,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC;IACvC,IAAI,EAAE,SAAS;IACf,IAAI,EAAE,UAAU;IAChB,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;IAC7B,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACxC,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE;IAClB,OAAO,EAAE,KAAK;IACd,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,IAAI;IACnB,QAAQ,EAAE,CAAC,qBAAqB,CAAC;IACjC,cAAc,EAAE,IAAI,mBAAmB,EAAE;CAC1C,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wisemen/nestjs-typeorm",
3
- "version": "0.0.31",
3
+ "version": "0.0.33",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "type": "module",
@@ -30,6 +30,7 @@
30
30
  "url": "git@github.com:wisemen-digital/node-core.git"
31
31
  },
32
32
  "peerDependencies": {
33
+ "pg": "8.16.3",
33
34
  "@nestjs/common": "^11.1.6",
34
35
  "@nestjs/config": "^4.0.2",
35
36
  "@nestjs/typeorm": "^11.0.0",