UNPKG

@typegoose/typegoose

Version:

Define Mongoose models using TypeScript classes

28 lines 2.06 kB
"use strict"; 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==