mirror of
https://github.com/JonasunderscoreJones/jonas_jones-api.git
synced 2025-10-24 01:29:19 +02:00
some progress
This commit is contained in:
parent
aea93a5527
commit
e3c15bd288
1388 changed files with 306946 additions and 68323 deletions
59
node_modules/mongoose/lib/helpers/indexes/getRelatedIndexes.js
generated
vendored
Normal file
59
node_modules/mongoose/lib/helpers/indexes/getRelatedIndexes.js
generated
vendored
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
'use strict';
|
||||
|
||||
function getRelatedSchemaIndexes(model, schemaIndexes) {
|
||||
return getRelatedIndexes({
|
||||
baseModelName: model.baseModelName,
|
||||
discriminatorMapping: model.schema.discriminatorMapping,
|
||||
indexes: schemaIndexes,
|
||||
indexesType: 'schema'
|
||||
});
|
||||
}
|
||||
|
||||
function getRelatedDBIndexes(model, dbIndexes) {
|
||||
return getRelatedIndexes({
|
||||
baseModelName: model.baseModelName,
|
||||
discriminatorMapping: model.schema.discriminatorMapping,
|
||||
indexes: dbIndexes,
|
||||
indexesType: 'db'
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getRelatedSchemaIndexes,
|
||||
getRelatedDBIndexes
|
||||
};
|
||||
|
||||
function getRelatedIndexes({
|
||||
baseModelName,
|
||||
discriminatorMapping,
|
||||
indexes,
|
||||
indexesType
|
||||
}) {
|
||||
const discriminatorKey = discriminatorMapping && discriminatorMapping.key;
|
||||
const discriminatorValue = discriminatorMapping && discriminatorMapping.value;
|
||||
|
||||
if (!discriminatorKey) {
|
||||
return indexes;
|
||||
}
|
||||
|
||||
const isChildDiscriminatorModel = Boolean(baseModelName);
|
||||
if (isChildDiscriminatorModel) {
|
||||
return indexes.filter(index => {
|
||||
const partialFilterExpression = getPartialFilterExpression(index, indexesType);
|
||||
return partialFilterExpression && partialFilterExpression[discriminatorKey] === discriminatorValue;
|
||||
});
|
||||
}
|
||||
|
||||
return indexes.filter(index => {
|
||||
const partialFilterExpression = getPartialFilterExpression(index, indexesType);
|
||||
return !partialFilterExpression || !partialFilterExpression[discriminatorKey];
|
||||
});
|
||||
}
|
||||
|
||||
function getPartialFilterExpression(index, indexesType) {
|
||||
if (indexesType === 'schema') {
|
||||
const options = index[1];
|
||||
return options && options.partialFilterExpression;
|
||||
}
|
||||
return index.partialFilterExpression;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue