-
Notifications
You must be signed in to change notification settings - Fork 104
Open
Description
I insert some configs in app object, and I hope to get it in mongoose plugins, can this feature be added.
And I think it can be handled this way.
module.exports = app => {
const { client, clients, url, options, defaultDB, customPromise, loadModel, plugins, aPlugins } = app.config.mongoose;
...
if (Array.isArray(aPlugins)) {
aPlugins.forEach(plugin => {
mongoose.plugin.apply(mongoose, insertApp(app, plugin));
});
}
...
};
function createOneClient(config, app) {
const { url, options, plugins, aPlugins } = config;
...
[].concat(plugins || [], (aPlugins || []).map(plugin => insertApp(app, plugin)), globalPlugins).forEach(plugin => {
mongoose.plugin.apply(mongoose, Array.isArray(plugin) ? plugin : [ plugin ]);
});
...
}
...
function insertApp(app, plugin) {
if (Array.isArray(plugin)) {
plugin[0] = plugin[0](app);
return plugin;
}
return [ plugin(app) ];
}
config like this
exports.mongoose = {
url: process.env.MONGODB_URL_3,
options: {},
aPlugins: [ lastModifiedPlugin, [ lastModifiedPlugin, { field: 'updatedAt' }]],
};
Metadata
Metadata
Assignees
Labels
No labels