UNPKG

2.06 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.Plugins = exports.plugin = void 0;
4const constants_1 = require("./internal/constants");
5const utils_1 = require("./internal/utils");
6const logSettings_1 = require("./logSettings");
7/**
8 * Add a mongoose Middleware-Plugin
9 * @param mongoosePlugin The Plugin to plug-in
10 * @param options Options for the Plugin, if any
11 * @example Example:
12 * ```ts
13 * @plugin(findOrCreate, { optionsHere: true })
14 * class ClassName {}
15 * ```
16 */
17function plugin(mongoosePlugin, options) {
18 // don't check if options is an object, because any plugin could make it anything
19 return (target) => {
20 logSettings_1.logger.info('Adding plugin "%s" to "%s" with options: "%o"', mongoosePlugin?.name || '<anonymous>', (0, utils_1.getName)(target), options);
21 const plugins = Array.from(Reflect.getMetadata(constants_1.DecoratorKeys.Plugins, target) ?? []);
22 plugins.push({ mongoosePlugin, options });
23 Reflect.defineMetadata(constants_1.DecoratorKeys.Plugins, plugins, target);
24 };
25}
26exports.plugin = plugin;
27exports.Plugins = plugin;
28//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBcUQ7QUFDckQsNENBQTJDO0FBQzNDLCtDQUF1QztBQUd2Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixNQUFNLENBQXFELGNBQXFCLEVBQUUsT0FBaUI7SUFDakgsaUZBQWlGO0lBQ2pGLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNyQixvQkFBTSxDQUFDLElBQUksQ0FBQywrQ0FBK0MsRUFBRSxjQUFjLEVBQUUsSUFBSSxJQUFJLGFBQWEsRUFBRSxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5SCxNQUFNLE9BQU8sR0FBb0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUM7QUFDSixDQUFDO0FBUkQsd0JBUUM7QUFHa0IseUJBQU8ifQ==
\No newline at end of file