Commit
This commit is contained in:
commit
d1c8cae2c1
1417 changed files with 326736 additions and 0 deletions
29
node_modules/mongoose/lib/helpers/discriminator/getConstructor.js
generated
vendored
Normal file
29
node_modules/mongoose/lib/helpers/discriminator/getConstructor.js
generated
vendored
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
'use strict';
|
||||
|
||||
const getDiscriminatorByValue = require('./getDiscriminatorByValue');
|
||||
|
||||
/**
|
||||
* Find the correct constructor, taking into account discriminators
|
||||
* @api private
|
||||
*/
|
||||
|
||||
module.exports = function getConstructor(Constructor, value, defaultDiscriminatorValue) {
|
||||
const discriminatorKey = Constructor.schema.options.discriminatorKey;
|
||||
let discriminatorValue = (value != null && value[discriminatorKey]);
|
||||
if (discriminatorValue == null) {
|
||||
discriminatorValue = defaultDiscriminatorValue;
|
||||
}
|
||||
if (Constructor.discriminators &&
|
||||
discriminatorValue != null) {
|
||||
if (Constructor.discriminators[discriminatorValue]) {
|
||||
Constructor = Constructor.discriminators[discriminatorValue];
|
||||
} else {
|
||||
const constructorByValue = getDiscriminatorByValue(Constructor.discriminators, discriminatorValue);
|
||||
if (constructorByValue) {
|
||||
Constructor = constructorByValue;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return Constructor;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue