nats-micro
Version:
NATS micro compatible extra-lightweight microservice library
19 lines • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.middleware = void 0;
/* eslint-disable @typescript-eslint/no-explicit-any */
const storage_js_1 = require("./storage.js");
function middleware(middlewares, postMiddlewares = []) {
return (target, key, descriptor) => {
var _a, _b;
if (!descriptor.value)
throw new Error('Use method decorators only on class methods');
const storedMethod = storage_js_1.storage.ensureClassMethodAdded(target, descriptor.value);
storedMethod.config = Object.assign(Object.assign({}, storedMethod.config), { middlewares: [...((_a = storedMethod.config.middlewares) !== null && _a !== void 0 ? _a : []), ...middlewares], postMiddlewares: [...((_b = storedMethod.config.postMiddlewares) !== null && _b !== void 0 ? _b : []), ...postMiddlewares] });
return descriptor;
};
}
exports.middleware = middleware;
middleware.pre = (...middlewares) => middleware(middlewares, []);
middleware.post = (...middlewares) => middleware([], middlewares);
//# sourceMappingURL=middleware.js.map