diff --git a/.github/workflows/pr-check.yaml b/.github/workflows/pr-check.yaml index 8d76216..4bb5b3c 100644 --- a/.github/workflows/pr-check.yaml +++ b/.github/workflows/pr-check.yaml @@ -38,7 +38,7 @@ jobs: max-parallel: 1 matrix: node-version: [16.x, 18.x] - mongoose-version: [mongoose@6.12.2, mongoose@7.6.4, mongoose@latest] + mongoose-version: [[mongoose@6.12.2, bson@^4.7.2], [mongoose@7.6.4, bson@^5.5.0], [mongoose@latest, bson@^6.5.0]] steps: - name: Checkout uses: actions/checkout@v3 @@ -55,8 +55,8 @@ jobs: - name: Installing dependencies run: npm ci - - name: Installing ${{ matrix.mongoose-version }} - run: npm i ${{ matrix.mongoose-version }} + - name: Installing ${{ matrix.mongoose-version[0] }} {{ matrix.mongoose-version[1] }} + run: npm i ${{ matrix.mongoose-version[0] }} ${{ matrix.mongoose-version[1] }} - name: Coverage run: npm run test @@ -67,6 +67,7 @@ jobs: REDIS_PORT: 6379 sonar: + needs: tests name: Coverage & Sonar runs-on: ubuntu-latest diff --git a/package-lock.json b/package-lock.json index a7e8967..5eb7b8e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,7 +41,6 @@ "node": ">=16" }, "peerDependencies": { - "bson": ">=4.7.2", "mongoose": ">=6.6.0 < 9" } }, @@ -3915,26 +3914,6 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "dev": true }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, "node_modules/bin-check": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/bin-check/-/bin-check-4.1.0.tgz", @@ -4111,42 +4090,6 @@ "node-int64": "^0.4.0" } }, - "node_modules/bson": { - "version": "4.7.2", - "resolved": "https://registry.npmjs.org/bson/-/bson-4.7.2.tgz", - "integrity": "sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==", - "peer": true, - "dependencies": { - "buffer": "^5.6.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true, - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -5584,6 +5527,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, "funding": [ { "type": "github", diff --git a/src/version.ts b/src/version.ts index 0abeb4b..66a7c57 100644 --- a/src/version.ts +++ b/src/version.ts @@ -4,12 +4,14 @@ import mongoose from 'mongoose' export const isMongooseLessThan7 = satisfies(mongoose.version, '<7') export const convertToObject = (value: unknown): unknown => { - if (value != null && typeof value === 'object' && !Array.isArray(value) && value.toObject) { - // eslint-disable-next-line @typescript-eslint/no-unsafe-call - return value.toObject() - } - if (Array.isArray(value)) { - return value.map((doc) => convertToObject(doc)) + if (isMongooseLessThan7) { + if (value != null && typeof value === 'object' && !Array.isArray(value) && value.toObject) { + // eslint-disable-next-line @typescript-eslint/no-unsafe-call + return value.toObject() + } + if (Array.isArray(value)) { + return value.map((doc) => convertToObject(doc)) + } } return value