Commit
This commit is contained in:
commit
d1c8cae2c1
1417 changed files with 326736 additions and 0 deletions
36
node_modules/mongoose/lib/helpers/discriminator/applyEmbeddedDiscriminators.js
generated
vendored
Normal file
36
node_modules/mongoose/lib/helpers/discriminator/applyEmbeddedDiscriminators.js
generated
vendored
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
'use strict';
|
||||
|
||||
module.exports = applyEmbeddedDiscriminators;
|
||||
|
||||
function applyEmbeddedDiscriminators(schema, seen = new WeakSet(), overwriteExisting = false) {
|
||||
if (seen.has(schema)) {
|
||||
return;
|
||||
}
|
||||
seen.add(schema);
|
||||
for (const path of Object.keys(schema.paths)) {
|
||||
const schemaType = schema.paths[path];
|
||||
if (!schemaType.schema) {
|
||||
continue;
|
||||
}
|
||||
applyEmbeddedDiscriminators(schemaType.schema, seen);
|
||||
if (!schemaType.schema._applyDiscriminators) {
|
||||
continue;
|
||||
}
|
||||
if (schemaType._appliedDiscriminators && !overwriteExisting) {
|
||||
continue;
|
||||
}
|
||||
for (const discriminatorKey of schemaType.schema._applyDiscriminators.keys()) {
|
||||
const {
|
||||
schema: discriminatorSchema,
|
||||
options
|
||||
} = schemaType.schema._applyDiscriminators.get(discriminatorKey);
|
||||
applyEmbeddedDiscriminators(discriminatorSchema, seen);
|
||||
schemaType.discriminator(
|
||||
discriminatorKey,
|
||||
discriminatorSchema,
|
||||
overwriteExisting ? { ...options, overwriteExisting: true } : options
|
||||
);
|
||||
}
|
||||
schemaType._appliedDiscriminators = true;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue