Skip to content

Commit 78d9d91

Browse files
authoredFeb 20, 2023
Merge pull request #12584 from maciasello/fix/gh-11943
fix: (5.x) make access to `process.versions` lazy
2 parents aef4c7b + f81f462 commit 78d9d91

File tree

5 files changed

+15
-5
lines changed

5 files changed

+15
-5
lines changed
 

‎.github/workflows/test.yml

+2
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ jobs:
4141
ln -s `pwd` ./test/typescript/node_modules/mongoose
4242
echo `pwd`/mongodb-linux-x86_64-ubuntu1804-4.0.2/bin >> $GITHUB_PATH
4343
44+
- run: npm run build-browser
45+
4446
- run: npm test
4547

4648
lint:

‎lib/cursor/AggregationCursor.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ const utils = require('../../lib/utils');
3939
function AggregationCursor(agg) {
4040
const streamOpts = { objectMode: true };
4141
// for node < 12 we will emit 'close' event after 'end'
42-
if (utils.nodeMajorVersion >= 12) {
42+
if (utils.nodeMajorVersion() >= 12) {
4343
// set autoDestroy=true because on node 12 it's by default false
4444
// gh-10902 need autoDestroy to destroy correctly and emit 'close' event for node >= 12
4545
streamOpts.autoDestroy = true;
@@ -95,7 +95,7 @@ AggregationCursor.prototype._read = function() {
9595
return _this.emit('error', error);
9696
}
9797
// for node >= 12 the autoDestroy will emit the 'close' event
98-
if (utils.nodeMajorVersion < 12) {
98+
if (utils.nodeMajorVersion() < 12) {
9999
_this.on('end', () => _this.emit('close'));
100100
}
101101
});

‎lib/cursor/QueryCursor.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ const utils = require('../../lib/utils');
3737
function QueryCursor(query, options) {
3838
const streamOpts = { objectMode: true };
3939
// for node < 12 we will emit 'close' event after 'end'
40-
if (utils.nodeMajorVersion >= 12) {
40+
if (utils.nodeMajorVersion() >= 12) {
4141
// set autoDestroy=true because on node 12 it's by default false
4242
// gh-10902 need autoDestroy to destroy correctly and emit 'close' event for node >= 12
4343
streamOpts.autoDestroy = true;
@@ -104,7 +104,7 @@ QueryCursor.prototype._read = function() {
104104
return _this.emit('error', error);
105105
}
106106
// for node >= 12 the autoDestroy will emit the 'close' event
107-
if (utils.nodeMajorVersion < 12) {
107+
if (utils.nodeMajorVersion() < 12) {
108108
_this.on('end', () => _this.emit('close'));
109109
}
110110
});

‎lib/utils.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -936,4 +936,6 @@ exports.errorToPOJO = function errorToPOJO(error) {
936936
return ret;
937937
};
938938

939-
exports.nodeMajorVersion = parseInt(process.versions.node.split('.')[0], 10);
939+
exports.nodeMajorVersion = function nodeMajorVersion() {
940+
return parseInt(process.versions.node.split('.')[0], 10);
941+
};

‎test/browser.test.js

+6
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
* Module dependencies.
55
*/
66

7+
require('../lib/browser');
8+
79
const Document = require('../lib/browserDocument');
810
const Schema = require('../lib/schema');
911
const assert = require('assert');
@@ -18,6 +20,10 @@ describe('browser', function() {
1820
exec('node --eval "require(\'./lib/browser\')"', done);
1921
});
2022

23+
it('require() works in an environment where process.versions is an empty object (gh-5842)', function(done) {
24+
exec('node --eval "Object.defineProperty(process, \'versions\', { value: {} }); require(\'./dist/browser.umd\')"', done);
25+
});
26+
2127
it('using schema (gh-7170)', function(done) {
2228
exec('node --eval "const mongoose = require(\'./lib/browser\'); new mongoose.Schema();"', done);
2329
});

0 commit comments

Comments
 (0)
Please sign in to comment.