UNPKG

ayanami

Version:
22 lines (21 loc) 1.08 kB
import { __spreadArray } from "tslib"; import { allActionSymbols } from '../symbols'; export function createActionDecorator(symbols) { return function () { return function ( // eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types target, propertyKey, descriptor) { addActionName(symbols, target.constructor, propertyKey); return descriptor; }; }; } // eslint-disable-next-line @typescript-eslint/ban-types function addActionName(symbols, constructor, actionName) { var decoratedActionNames = Reflect.getMetadata(symbols.decorator, constructor) || []; Reflect.defineMetadata(symbols.decorator, __spreadArray(__spreadArray([], decoratedActionNames), [actionName]), constructor); } export function getActionNames(symbols, constructor) { return Reflect.getMetadata(symbols.decorator, constructor) || []; } export function getAllActionNames(instance) { return allActionSymbols.reduce(function (result, symbols) { return __spreadArray(__spreadArray([], result), getActionNames(symbols, instance.constructor)); }, []); }