@typegoose/typegoose
Version:
Define Mongoose models using TypeScript classes
28 lines • 2.06 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.Plugins = exports.plugin = void 0;
const constants_1 = require("./internal/constants");
const utils_1 = require("./internal/utils");
const logSettings_1 = require("./logSettings");
/**
* Add a mongoose Middleware-Plugin
* @param mongoosePlugin The Plugin to plug-in
* @param options Options for the Plugin, if any
* @example Example:
* ```ts
* @plugin(pluginFunctionHere, { optionsHere: true })
* class ClassName {}
* ```
*/
function plugin(mongoosePlugin, options) {
// don't check if options is an object, because any plugin could make it anything
return (target) => {
logSettings_1.logger.info('Adding plugin "%s" to "%s" with options: "%o"', mongoosePlugin?.name || '<anonymous>', (0, utils_1.getName)(target), options);
const plugins = Array.from(Reflect.getMetadata(constants_1.DecoratorKeys.Plugins, target) ?? []);
plugins.push({ mongoosePlugin, options });
Reflect.defineMetadata(constants_1.DecoratorKeys.Plugins, plugins, target);
};
}
exports.plugin = plugin;
exports.Plugins = plugin;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBcUQ7QUFDckQsNENBQTJDO0FBQzNDLCtDQUF1QztBQUd2Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixNQUFNLENBQXFELGNBQXFCLEVBQUUsT0FBaUI7SUFDakgsaUZBQWlGO0lBQ2pGLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNyQixvQkFBTSxDQUFDLElBQUksQ0FBQywrQ0FBK0MsRUFBRSxjQUFjLEVBQUUsSUFBSSxJQUFJLGFBQWEsRUFBRSxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5SCxNQUFNLE9BQU8sR0FBb0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUM7QUFDSixDQUFDO0FBUkQsd0JBUUM7QUFHa0IseUJBQU8ifQ==
;