diff --git a/package.json b/package.json index 4d86d0a..44ff345 100644 --- a/package.json +++ b/package.json @@ -18,10 +18,6 @@ "paginate" ], "devDependencies": { - "@nestjs/common": "^11.0.0", - "@nestjs/core": "^11.0.0", - "@nestjs/testing": "^11.0.0", - "@nestjs/typeorm": "^11.0.0", "@types/jest": "^27.0.0", "@types/node": "^20.9.0", "coveralls": "^3.0.5", @@ -46,7 +42,6 @@ "prepublish": "npm run format && npm run build" }, "peerDependencies": { - "@nestjs/common": "^6.1.1 || ^5.6.2 || ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0", "typeorm": "^0.3.0" }, "jest": { @@ -65,6 +60,5 @@ }, "coverageDirectory": "../coverage" }, - "version": "4.1.0", - "dependencies": {} + "version": "4.1.0" } diff --git a/src/__tests__/base-orm-config.ts b/src/__tests__/base-orm-config.ts index 590e56b..c54081a 100644 --- a/src/__tests__/base-orm-config.ts +++ b/src/__tests__/base-orm-config.ts @@ -1,8 +1,8 @@ -import { TypeOrmModuleOptions } from '@nestjs/typeorm'; +import { DataSourceOptions } from 'typeorm'; import { TestRelatedEntity } from './test-related.entity'; import { TestEntity } from './test.entity'; -export const baseOrmConfigs: TypeOrmModuleOptions = { +export const baseOrmConfigs: DataSourceOptions = { entities: [TestEntity, TestRelatedEntity], host: 'localhost', port: 3306, diff --git a/src/__tests__/paginate-raw-and-entities.spec.ts b/src/__tests__/paginate-raw-and-entities.spec.ts index f568664..fafbd9a 100644 --- a/src/__tests__/paginate-raw-and-entities.spec.ts +++ b/src/__tests__/paginate-raw-and-entities.spec.ts @@ -1,6 +1,4 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { getConnectionToken, TypeOrmModule } from '@nestjs/typeorm'; -import { Connection, QueryRunner, SelectQueryBuilder } from 'typeorm'; +import { DataSource, QueryRunner, SelectQueryBuilder } from 'typeorm'; import { paginateRawAndEntities } from '../paginate'; import { Pagination } from '../pagination'; import { baseOrmConfigs } from './base-orm-config'; @@ -11,8 +9,7 @@ describe('Test paginateRawAndEntities function', () => { const RAW_ID_LABEL = 't_id'; const RAW_SUM_LABEL = 'sum'; - let app: TestingModule; - let connection: Connection; + let dataSource: DataSource; let runner: QueryRunner; let queryBuilder: SelectQueryBuilder; @@ -22,18 +19,14 @@ describe('Test paginateRawAndEntities function', () => { const totalItems = 10; beforeAll(async () => { - app = await Test.createTestingModule({ - imports: [ - TypeOrmModule.forRoot({ - ...baseOrmConfigs, - dropSchema: true, - synchronize: true, - }), - ], - }).compile(); - connection = app.get(getConnectionToken()); - runner = connection.createQueryRunner(); + dataSource = new DataSource({ + ...baseOrmConfigs, + dropSchema: true, + synchronize: true, + }); + await dataSource.initialize(); + runner = dataSource.createQueryRunner(); queryBuilder = runner.manager.createQueryBuilder(TestEntity, 't'); // Insert some registries on database @@ -50,7 +43,7 @@ describe('Test paginateRawAndEntities function', () => { afterAll(async () => { await queryBuilder.delete(); - await app.close(); + await dataSource.destroy(); }); describe.each([ diff --git a/src/__tests__/paginate-raw.spec.ts b/src/__tests__/paginate-raw.spec.ts index c3ea05d..3b63ab5 100644 --- a/src/__tests__/paginate-raw.spec.ts +++ b/src/__tests__/paginate-raw.spec.ts @@ -1,6 +1,4 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { getConnectionToken, TypeOrmModule } from '@nestjs/typeorm'; -import { Connection, QueryRunner, SelectQueryBuilder } from 'typeorm'; +import { DataSource, QueryRunner, SelectQueryBuilder } from 'typeorm'; import { paginateRaw } from '../paginate'; import { Pagination } from '../pagination'; import { baseOrmConfigs } from './base-orm-config'; @@ -12,8 +10,7 @@ interface RawQueryResult { } describe('Test paginateRaw function', () => { - let app: TestingModule; - let connection: Connection; + let dataSource: DataSource; let runner: QueryRunner; let queryBuilder: SelectQueryBuilder; @@ -22,17 +19,14 @@ describe('Test paginateRaw function', () => { const totalItems = 10; beforeAll(async () => { - app = await Test.createTestingModule({ - imports: [ - TypeOrmModule.forRoot({ - ...baseOrmConfigs, - dropSchema: true, - synchronize: true, - }), - ], - }).compile(); - connection = app.get(getConnectionToken()); - runner = connection.createQueryRunner(); + dataSource = new DataSource({ + ...baseOrmConfigs, + dropSchema: true, + synchronize: true, + }); + await dataSource.initialize(); + + runner = dataSource.createQueryRunner(); queryBuilder = runner.manager.createQueryBuilder( TestEntity, 't', @@ -52,7 +46,7 @@ describe('Test paginateRaw function', () => { afterAll(async () => { await queryBuilder.delete(); - await app.close(); + await dataSource.destroy(); }); describe.each([ diff --git a/src/__tests__/paginate.query.builder.spec.ts b/src/__tests__/paginate.query.builder.spec.ts index 93cfd35..b1cf2fb 100644 --- a/src/__tests__/paginate.query.builder.spec.ts +++ b/src/__tests__/paginate.query.builder.spec.ts @@ -1,6 +1,4 @@ -import { Test, TestingModule } from '@nestjs/testing'; -import { TypeOrmModule, getConnectionToken } from '@nestjs/typeorm'; -import { Connection, QueryRunner, SelectQueryBuilder } from 'typeorm'; +import { DataSource, QueryRunner, SelectQueryBuilder } from 'typeorm'; import { paginate } from './../paginate'; import { Pagination } from '../pagination'; import { baseOrmConfigs } from './base-orm-config'; @@ -9,22 +7,16 @@ import { PaginationTypeEnum } from '../interfaces'; import { TestRelatedEntity } from './test-related.entity'; describe('Paginate with queryBuilder', () => { - let app: TestingModule; - let connection: Connection; + let dataSource: DataSource; let runner: QueryRunner; let queryBuilder: SelectQueryBuilder; let testRelatedQueryBuilder: SelectQueryBuilder; beforeEach(async () => { - app = await Test.createTestingModule({ - imports: [ - TypeOrmModule.forRoot({ - ...baseOrmConfigs, - }), - ], - }).compile(); - connection = app.get(getConnectionToken()); - runner = connection.createQueryRunner(); + dataSource = new DataSource({ ...baseOrmConfigs }); + runner = dataSource.createQueryRunner(); + + await dataSource.initialize(); await runner.startTransaction(); queryBuilder = runner.manager.createQueryBuilder(TestEntity, 't'); @@ -34,9 +26,9 @@ describe('Paginate with queryBuilder', () => { ); }); - afterEach(() => { - runner.rollbackTransaction(); - app.close(); + afterEach(async () => { + await runner.rollbackTransaction(); + await dataSource.destroy(); }); it('Can call paginate', async () => { diff --git a/yarn.lock b/yarn.lock index e584a6b..7213bcb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -545,51 +545,6 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" -"@lukeed/csprng@^1.0.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.1.0.tgz#1e3e4bd05c1cc7a0b2ddbd8a03f39f6e4b5e6cfe" - integrity sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA== - -"@nestjs/common@^11.0.0": - version "11.0.11" - resolved "https://registry.yarnpkg.com/@nestjs/common/-/common-11.0.11.tgz#6ae7bb7a7dce323179fb93ca016b27350853ce5c" - integrity sha512-b3zYiho5/XGCnLa7W2hHv5ecSBR1huQrXCHu6pxd+g2HY2B7sKP5CXHMv4gHYqpIqu4ClOb7Q4tLKXMp9LyLUg== - dependencies: - uid "2.0.2" - iterare "1.2.1" - tslib "2.8.1" - -"@nestjs/core@^11.0.0": - version "11.0.11" - resolved "https://registry.yarnpkg.com/@nestjs/core/-/core-11.0.11.tgz#bb86a0454d6d49929a7ceb06238740bcfcb66d4e" - integrity sha512-jMH3jrjrPiaGrkQ5hANNcgDWN+j+hcM5GMQ3jSs4vOWNs3lmKHTVR11wJ9y5tTNnwKydzMogeju0VTUdfXDI5Q== - dependencies: - uid "2.0.2" - "@nuxt/opencollective" "0.4.1" - fast-safe-stringify "2.1.1" - iterare "1.2.1" - path-to-regexp "8.2.0" - tslib "2.8.1" - -"@nestjs/testing@^11.0.0": - version "11.0.11" - resolved "https://registry.yarnpkg.com/@nestjs/testing/-/testing-11.0.11.tgz#38c339de5a9fa7752563b54c3bc48ec90cc42017" - integrity sha512-SoMIrhRpElV53btmGnEwpIQmXn2Xcztb9ae3lv+eVVnPHQuyB2zlgDIQVNjicbj7+3jdycX52KctOoj2eXEo1Q== - dependencies: - tslib "2.8.1" - -"@nestjs/typeorm@^11.0.0": - version "11.0.0" - resolved "https://registry.yarnpkg.com/@nestjs/typeorm/-/typeorm-11.0.0.tgz#b0f45d6902396db89e0ac1f4e738c2ff3407b794" - integrity sha512-SOeUQl70Lb2OfhGkvnh4KXWlsd+zA08RuuQgT7kKbzivngxzSo1Oc7Usu5VxCxACQC9wc2l9esOHILSJeK7rJA== - -"@nuxt/opencollective@0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.4.1.tgz#57bc41d2b03b2fba20b935c15950ac0f4bd2cea2" - integrity sha512-GXD3wy50qYbxCJ652bDrDzgMr3NFEkIS374+IgFQKkCvk9yiYcLvX2XDYr7UyQxf4wK0e+yqDYRubZ0DtOxnmQ== - dependencies: - consola "^3.2.3" - "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -1098,11 +1053,6 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -consola@^3.2.3: - version "3.4.0" - resolved "https://registry.yarnpkg.com/consola/-/consola-3.4.0.tgz#4cfc9348fd85ed16a17940b3032765e31061ab88" - integrity sha512-EiPU8G6dQG0GFHNR8ljnZFki/8a+cQwEQ+7wpxdChl02Q8HXlwEZWD5lqAF8vC2sEC3Tehr8hy7vErz88LHyUA== - convert-source-map@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" @@ -1332,11 +1282,6 @@ fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-sta resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-safe-stringify@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz#c406a83b6e70d9e35ce3b30a81141df30aeba884" - integrity sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA== - fb-watchman@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.2.tgz#e9524ee6b5c77e9e5001af0f85f3adbb8623255c" @@ -1640,11 +1585,6 @@ istanbul-reports@^3.1.3: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -iterare@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" - integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== - jake@^10.8.5: version "10.9.2" resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" @@ -2378,11 +2318,6 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-to-regexp@8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-8.2.0.tgz#73990cc29e57a3ff2a0d914095156df5db79e8b4" - integrity sha512-TdrF7fW9Rphjq4RjrW0Kp2AW0Ahwu9sRGTkS6bvDi0SCwZlEZYmcfDbEsTz8RVk0EHIS/Vd1bv3JhG+1xZuAyQ== - performance-now@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" @@ -2826,7 +2761,7 @@ ts-node@^10.0.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tslib@2.8.1, tslib@^2.1.0: +tslib@^2.1.0: version "2.8.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.8.1.tgz#612efe4ed235d567e8aba5f2a5fab70280ade83f" integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== @@ -2884,13 +2819,6 @@ typescript@^4.0.5: resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== -uid@2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/uid/-/uid-2.0.2.tgz#4b5782abf0f2feeefc00fa88006b2b3b7af3e3b9" - integrity sha512-u3xV3X7uzvi5b1MncmZo3i2Aw222Zk1keqLA1YkHldREkAhAqi65wuPfe7lHx8H/Wzy+8CE7S7uS3jekIM5s8g== - dependencies: - "@lukeed/csprng" "^1.0.0" - undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"