some progress

This commit is contained in:
Jonas_Jones 2023-03-30 20:40:42 +02:00
parent aea93a5527
commit e3c15bd288
1388 changed files with 306946 additions and 68323 deletions

View file

@ -0,0 +1,54 @@
'use strict';
/*!
* ignore
*/
module.exports = applyQueryMiddleware;
const validOps = require('./validOps');
/*!
* ignore
*/
applyQueryMiddleware.middlewareFunctions = validOps.concat([
'validate'
]);
/**
* Apply query middleware
*
* @param {Query} Query constructor
* @param {Model} model
* @api private
*/
function applyQueryMiddleware(Query, model) {
const queryMiddleware = model.schema.s.hooks.filter(hook => {
const contexts = _getContexts(hook);
if (hook.name === 'validate') {
return !!contexts.query;
}
if (hook.name === 'deleteOne' || hook.name === 'updateOne') {
return !!contexts.query || Object.keys(contexts).length === 0;
}
if (hook.query != null || hook.document != null) {
return !!hook.query;
}
return true;
});
Query.prototype._queryMiddleware = queryMiddleware;
}
function _getContexts(hook) {
const ret = {};
if (hook.hasOwnProperty('query')) {
ret.query = hook.query;
}
if (hook.hasOwnProperty('document')) {
ret.document = hook.document;
}
return ret;
}