From 8c55173a70ec2412f4d0445435223ec7c13b0629 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20My=C5=9Bliwiec?= Date: Wed, 7 Jul 2021 13:35:57 +0200 Subject: [PATCH] feat(): upgrade to v8 --- lib/common/typeorm.utils.ts | 10 +-- lib/typeorm-core.module.ts | 19 +++--- package-lock.json | 128 ++++++++++++++++++++---------------- package.json | 23 ++++--- 4 files changed, 96 insertions(+), 84 deletions(-) diff --git a/lib/common/typeorm.utils.ts b/lib/common/typeorm.utils.ts index 8725627f2..42890d465 100644 --- a/lib/common/typeorm.utils.ts +++ b/lib/common/typeorm.utils.ts @@ -7,9 +7,8 @@ import { ConnectionOptions, EntityManager, EntitySchema, - Repository, + Repository } from 'typeorm'; -import { isNullOrUndefined } from 'util'; import { v4 as uuid } from 'uuid'; import { CircularDependencyException } from '../exceptions/circular-dependency.exception'; import { EntityClassOrSchema } from '../interfaces/entity-class-or-schema.type'; @@ -27,7 +26,7 @@ export function getRepositoryToken( entity: EntityClassOrSchema, connection: Connection | ConnectionOptions | string = DEFAULT_CONNECTION_NAME, ) { - if (isNullOrUndefined(entity)) { + if (entity === null || entity === undefined) { throw new CircularDependencyException('@InjectRepository()'); } const connectionPrefix = getConnectionPrefix(connection); @@ -36,6 +35,9 @@ export function getRepositoryToken( (entity.prototype instanceof Repository || entity.prototype instanceof AbstractRepository) ) { + if (!connectionPrefix) { + return entity; + } return `${connectionPrefix}${getCustomRepositoryToken(entity)}`; } @@ -53,7 +55,7 @@ export function getRepositoryToken( * @returns {string} The Repository injection token */ export function getCustomRepositoryToken(repository: Function) { - if (isNullOrUndefined(repository)) { + if (repository === null || repository === undefined) { throw new CircularDependencyException('@InjectRepository()'); } return repository.name; diff --git a/lib/typeorm-core.module.ts b/lib/typeorm-core.module.ts index 2b16ea78d..3907ccd3b 100644 --- a/lib/typeorm-core.module.ts +++ b/lib/typeorm-core.module.ts @@ -1,33 +1,31 @@ import { DynamicModule, Global, - Inject, - Module, + Inject, Logger, Module, OnApplicationShutdown, Provider, - Type, - Logger, + Type } from '@nestjs/common'; import { ModuleRef } from '@nestjs/core'; -import { defer } from 'rxjs'; +import { defer, lastValueFrom } from 'rxjs'; import { Connection, ConnectionOptions, createConnection, - getConnectionManager, + getConnectionManager } from 'typeorm'; import { generateString, getConnectionName, getConnectionToken, getEntityManagerToken, - handleRetry, + handleRetry } from './common/typeorm.utils'; import { EntitiesMetadataStorage } from './entities-metadata.storage'; import { TypeOrmModuleAsyncOptions, TypeOrmModuleOptions, - TypeOrmOptionsFactory, + TypeOrmOptionsFactory } from './interfaces/typeorm-options.interface'; import { TYPEORM_MODULE_ID, TYPEORM_MODULE_OPTIONS } from './typeorm.constants'; @@ -181,7 +179,7 @@ export class TypeOrmCoreModule implements OnApplicationShutdown { } catch {} const connectionToken = getConnectionName(options as ConnectionOptions); - return await defer(() => { + return lastValueFrom(defer(() => { if (!options.type) { return createConnection(); } @@ -212,7 +210,6 @@ export class TypeOrmCoreModule implements OnApplicationShutdown { options.verboseRetryLog, options.toRetry, ), - ) - .toPromise(); + )) } } diff --git a/package-lock.json b/package-lock.json index 907094f07..56bcfd4bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1905,83 +1905,83 @@ } }, "@nestjs/common": { - "version": "7.6.18", - "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-7.6.18.tgz", - "integrity": "sha512-BUJQHNhWzwWOkS4Ryndzd4HTeRObcAWV2Fh+ermyo3q3xYQQzNoEWclJVL/wZec8AONELwIJ+PSpWI53VP0leg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.0.0.tgz", + "integrity": "sha512-qztj56rJRFnNPfz/ddCu2TkSwEHTpm0wi9xydyEfHk8b7QM10ZwkHoM2Of/qWxDkh3qDu8fscdxo7w1ix+EKFA==", "dev": true, "requires": { "axios": "0.21.1", "iterare": "1.2.1", - "tslib": "2.2.0", + "tslib": "2.3.0", "uuid": "8.3.2" }, "dependencies": { "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "dev": true } } }, "@nestjs/core": { - "version": "7.6.18", - "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-7.6.18.tgz", - "integrity": "sha512-CGu20OjIxgFDY7RJT5t1TDGL8wSlTSlbZEkn8U5OlICZEB3WIpi98G7ajJpnRWmEgW8S4aDJmRKGjT+Ntj5U4A==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.0.0.tgz", + "integrity": "sha512-DGlqMoPvWZmPPTXX2B2ln5l9WHMCfCPkF+/PoSmnDLuuVo/QlKBAlDbZELVRuELShpXVXiJlcManFQ579dxhOA==", "dev": true, "requires": { "@nuxtjs/opencollective": "0.3.2", "fast-safe-stringify": "2.0.7", "iterare": "1.2.1", - "object-hash": "2.1.1", + "object-hash": "2.2.0", "path-to-regexp": "3.2.0", - "tslib": "2.2.0", + "tslib": "2.3.0", "uuid": "8.3.2" }, "dependencies": { "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "dev": true } } }, "@nestjs/platform-express": { - "version": "7.6.18", - "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-7.6.18.tgz", - "integrity": "sha512-Dty2bBhsW7EInMRPS1pkXKJ3GBBusEj6fnEpb0UfkaT3E7asay9c64kCmZE+8hU430qQjY+fhBb1RNWWPnUiwQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-8.0.0.tgz", + "integrity": "sha512-EwVwoKmoAPlLPz9GROjZ1LJLmav8QdET97K6zlPPtFNPzE7hx3lyt3eMlUyR9FXvlGBko3b0vnsaitmr0JleUg==", "dev": true, "requires": { "body-parser": "1.19.0", "cors": "2.8.5", "express": "4.17.1", "multer": "1.4.2", - "tslib": "2.2.0" + "tslib": "2.3.0" }, "dependencies": { "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "dev": true } } }, "@nestjs/testing": { - "version": "7.6.18", - "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-7.6.18.tgz", - "integrity": "sha512-1AVk9vWZlPpx4CmzY6z9z0DHFgGCadfr01QdisGFAN740JwKqZWEqz12cVd+nsXDlYQPFRkp2ICBIS/6k1qZGQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-8.0.0.tgz", + "integrity": "sha512-lBhN4SnHvCXjiJAzmSCZhAPs+PCU0D8nhYjZm4qiN/U5nz99oeyIBypXXeqTUqYdtKkKKEDzRoaknTaagX4uIg==", "dev": true, "requires": { "optional": "0.1.4", - "tslib": "2.2.0" + "tslib": "2.3.0" }, "dependencies": { "tslib": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.2.0.tgz", - "integrity": "sha512-gS9GVHRU+RGn5KQM2rllAlR3dU6m7AcpJKdtH8gFvQiC4Otgk98XnmMU+nZenHt/+VhnBPWwgrJsyrdcw6i23w==", + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==", "dev": true } } @@ -2394,9 +2394,9 @@ "dev": true }, "@types/node": { - "version": "14.17.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.4.tgz", - "integrity": "sha512-8kQ3+wKGRNN0ghtEn7EGps/B8CzuBz1nXZEIGGLP2GnwbqYn4dbTs7k+VKLTq1HvZLRCIDtN3Snx1Ege8B7L5A==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-16.0.0.tgz", + "integrity": "sha512-TmCW5HoZ2o2/z2EYi109jLqIaPIi9y/lc2LmDCWzuCi35bcaQ+OtUh6nwBiFK7SOu25FAU5+YKdqFZUwtqGSdg==", "dev": true }, "@types/normalize-package-data": { @@ -3098,12 +3098,6 @@ "requires": { "ms": "2.0.0" } - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true } } }, @@ -4839,12 +4833,6 @@ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true } } }, @@ -5569,6 +5557,15 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9051,6 +9048,15 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -9627,9 +9633,9 @@ "dev": true }, "object-hash": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.1.1.tgz", - "integrity": "sha512-VOJmgmS+7wvXf8CjbQmimtCnEx3IAoLxI3fp2fbWehxrWBcAQFbk+vcwb6vzR0VZv/eNCJ/27j151ZTwqW/JeQ==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz", + "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==", "dev": true }, "object-inspect": { @@ -10427,6 +10433,12 @@ "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", "dev": true }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + }, "query-string": { "version": "6.14.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-6.14.1.tgz", @@ -11001,20 +11013,22 @@ "dev": true }, "rxjs": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", - "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.2.0.tgz", + "integrity": "sha512-aX8w9OpKrQmiPKfT1bqETtUr9JygIz6GZ+gql8v7CijClsP0laoFUdKzxFAoWuRdSlOdU2+crss+cMf+cqMTnw==", "dev": true, "requires": { - "tslib": "^1.9.0" + "tslib": "~2.1.0" + }, + "dependencies": { + "tslib": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", + "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "dev": true + } } }, - "rxjs-compat": { - "version": "6.6.7", - "resolved": "https://registry.npmjs.org/rxjs-compat/-/rxjs-compat-6.6.7.tgz", - "integrity": "sha512-szN4fK+TqBPOFBcBcsR0g2cmTTUF/vaFEOZNuSdfU8/pGFnNmmn2u8SystYXG1QMrjOPBc6XTKHMVfENDf6hHw==", - "dev": true - }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", diff --git a/package.json b/package.json index b05f42ac8..02811f51f 100644 --- a/package.json +++ b/package.json @@ -21,12 +21,12 @@ "devDependencies": { "@commitlint/cli": "12.1.4", "@commitlint/config-angular": "12.1.4", - "@nestjs/common": "7.6.18", - "@nestjs/core": "7.6.18", - "@nestjs/platform-express": "7.6.18", - "@nestjs/testing": "7.6.18", + "@nestjs/common": "8.0.0", + "@nestjs/core": "8.0.0", + "@nestjs/platform-express": "8.0.0", + "@nestjs/testing": "8.0.0", "@types/jest": "26.0.24", - "@types/node": "14.17.4", + "@types/node": "16.0.0", "@types/supertest": "2.0.11", "@types/uuid": "8.3.1", "@typescript-eslint/eslint-plugin": "4.28.2", @@ -42,8 +42,7 @@ "prettier": "2.3.2", "reflect-metadata": "0.1.13", "release-it": "14.10.0", - "rxjs": "6.6.7", - "rxjs-compat": "6.6.7", + "rxjs": "7.2.0", "supertest": "6.1.3", "ts-jest": "27.0.3", "typeorm": "0.2.34", @@ -53,11 +52,11 @@ "uuid": "8.3.2" }, "peerDependencies": { - "@nestjs/common": "^6.7.0 || ^7.0.0", - "@nestjs/core": "^6.7.0 || ^7.0.0", - "reflect-metadata": "^0.1.12", - "rxjs": "^6.0.0", - "typeorm": "^0.2.7" + "@nestjs/common": "^8.0.0", + "@nestjs/core": "^8.0.0", + "reflect-metadata": "^0.1.13", + "rxjs": "^7.2.0", + "typeorm": "^0.2.34" }, "lint-staged": { "*.ts": [