nodejs-rigorous
Version:
Rigorous Framework
34 lines (22 loc) • 714 B
JavaScript
/* eslint no-param-reassign:0 */
module.exports = (schema, hooks) => {
// PRE
if (hooks.pre.remove) {
schema.pre('remove', hooks.pre.remove);
}
// POST
if (hooks.post.findOrfindOne) {
schema.post('findOne', hooks.post.findOrfindOne);
schema.post('find', async (results) => {
await Promise.all(
results.map(async (result) => {
hooks.post.findOrfindOne(result);
}),
);
});
}
if (hooks.post.anySave) {
schema.post('findOneAndUpdate', hooks.post.save);
schema.post('save', hooks.post.save);
}
};