UNPKG

chrono-forge

Version:

A comprehensive framework for building resilient Temporal workflows, advanced state management, and real-time streaming activities in TypeScript. Designed for a seamless developer experience with powerful abstractions, dynamic orchestration, and full cont

25 lines (24 loc) 926 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Hook = void 0; require("reflect-metadata"); const metadata_1 = require("./metadata"); const Hook = (options = {}) => { return (target, propertyKey) => { const hooks = Reflect.getMetadata(metadata_1.HOOKS_METADATA_KEY, target) || {}; const addHook = (hookType, methodName, position) => { hooks[hookType] = hooks[hookType] || { before: [], after: [] }; if (!hooks[hookType][position].includes(methodName)) { hooks[hookType][position].push(methodName); } }; if (options.before) { addHook(options.before, propertyKey, 'before'); } if (options.after) { addHook(options.after, propertyKey, 'after'); } Reflect.defineMetadata(metadata_1.HOOKS_METADATA_KEY, hooks, target); }; }; exports.Hook = Hook;