1 | ;
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.Plugins = exports.plugin = void 0;
|
4 | const constants_1 = require("./internal/constants");
|
5 | const utils_1 = require("./internal/utils");
|
6 | const 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 | */
|
17 | function 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 | }
|
26 | exports.plugin = plugin;
|
27 | exports.Plugins = plugin;
|
28 | //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3BsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFBcUQ7QUFDckQsNENBQTJDO0FBQzNDLCtDQUF1QztBQUd2Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxTQUFnQixNQUFNLENBQXFELGNBQXFCLEVBQUUsT0FBaUI7SUFDakgsaUZBQWlGO0lBQ2pGLE9BQU8sQ0FBQyxNQUFXLEVBQUUsRUFBRTtRQUNyQixvQkFBTSxDQUFDLElBQUksQ0FBQywrQ0FBK0MsRUFBRSxjQUFjLEVBQUUsSUFBSSxJQUFJLGFBQWEsRUFBRSxJQUFBLGVBQU8sRUFBQyxNQUFNLENBQUMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM5SCxNQUFNLE9BQU8sR0FBb0IsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3RHLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsY0FBYyxDQUFDLHlCQUFhLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNqRSxDQUFDLENBQUM7QUFDSixDQUFDO0FBUkQsd0JBUUM7QUFHa0IseUJBQU8ifQ== |
\ | No newline at end of file |