ayanami
Version:
A better way to react with state
28 lines (27 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAllActionNames = exports.getActionNames = exports.createActionDecorator = void 0;
var tslib_1 = require("tslib");
var symbols_1 = require("../symbols");
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;
}; };
}
exports.createActionDecorator = createActionDecorator;
// eslint-disable-next-line @typescript-eslint/ban-types
function addActionName(symbols, constructor, actionName) {
var decoratedActionNames = Reflect.getMetadata(symbols.decorator, constructor) || [];
Reflect.defineMetadata(symbols.decorator, tslib_1.__spreadArray(tslib_1.__spreadArray([], decoratedActionNames), [actionName]), constructor);
}
function getActionNames(symbols, constructor) {
return Reflect.getMetadata(symbols.decorator, constructor) || [];
}
exports.getActionNames = getActionNames;
function getAllActionNames(instance) {
return symbols_1.allActionSymbols.reduce(function (result, symbols) { return tslib_1.__spreadArray(tslib_1.__spreadArray([], result), getActionNames(symbols, instance.constructor)); }, []);
}
exports.getAllActionNames = getAllActionNames;