nats-micro
Version:
NATS micro compatible extra-lightweight microservice library
16 lines • 965 B
JavaScript
/* eslint-disable @typescript-eslint/no-explicit-any */
import { storage } from './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.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;
};
}
middleware.pre = (...middlewares) => middleware(middlewares, []);
middleware.post = (...middlewares) => middleware([], middlewares);
export { middleware, };
//# sourceMappingURL=middleware.js.map