Skip to content

Commit

Permalink
refactor: move idGetter back to being a plugin
Browse files Browse the repository at this point in the history
Re: #3936
  • Loading branch information
vkarpov15 committed May 10, 2020
1 parent b6dfdb2 commit 36552fa
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 34 deletions.
30 changes: 0 additions & 30 deletions lib/helpers/schema/addIdGetter.js

This file was deleted.

2 changes: 2 additions & 0 deletions lib/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ const legacyPluralize = require('mongoose-legacy-pluralize');
const utils = require('./utils');
const pkg = require('../package.json');
const cast = require('./cast');
const idGetter = require('./plugins/idGetter');
const removeSubdocs = require('./plugins/removeSubdocs');
const saveSubdocs = require('./plugins/saveSubdocs');
const validateBeforeSave = require('./plugins/validateBeforeSave');
Expand Down Expand Up @@ -102,6 +103,7 @@ function Mongoose(options) {
enumerable: true,
writable: false,
value: [
[idGetter, { deduplicate: true }],
[saveSubdocs, { deduplicate: true }],
[validateBeforeSave, { deduplicate: true }],
[shardingPlugin, { deduplicate: true }],
Expand Down
2 changes: 1 addition & 1 deletion lib/plugins/idGetter.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
* ignore
*/

module.exports = function(schema) {
module.exports = function addIdGetter(schema) {
// ensure the documents receive an id getter unless disabled
const autoIdGetter = !schema.paths['id'] &&
schema.paths['_id'] &&
Expand Down
3 changes: 0 additions & 3 deletions lib/schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ const SchemaTypeOptions = require('./options/SchemaTypeOptions');
const VirtualOptions = require('./options/VirtualOptions');
const VirtualType = require('./virtualtype');
const addAutoId = require('./helpers/schema/addAutoId');
const addIdGetter = require('./helpers/schema/addIdGetter');
const applyTimestampsToChildren = require('./helpers/update/applyTimestampsToChildren');
const applyTimestampsToUpdate = require('./helpers/update/applyTimestampsToUpdate');
const arrayParentSymbol = require('./helpers/symbols').arrayParentSymbol;
Expand Down Expand Up @@ -140,8 +139,6 @@ function Schema(obj, options) {
addAutoId(this);
}

addIdGetter(this);

this.setupTimestamp(this.options.timestamps);
}

Expand Down
4 changes: 4 additions & 0 deletions test/schema.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const ReadPref = mongoose.mongo.ReadPreference;
const vm = require('vm');
const co = require('co');
const Buffer = require('safe-buffer').Buffer;
const applyPlugins = require('../lib/helpers/schema/applyPlugins');

/**
* Test Document constructor.
Expand Down Expand Up @@ -2432,7 +2433,10 @@ describe('schema', function() {
});

it('disables `id` virtual if no `_id` path (gh-3936)', function() {
const idGetter = require('../lib/plugins/idGetter');

const schema = Schema({ name: String }, { _id: false });
applyPlugins(schema, [[idGetter]]);
assert.ok(!schema.paths._id);
assert.ok(!schema.virtuals.id);
});
Expand Down

0 comments on commit 36552fa

Please sign in to comment.