@datorama/akita
Version:
State Management Tailored-Made for JS Applications
78 lines • 4.65 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/** @type {?} */
export var currentAction = {
type: null,
entityIds: null,
skip: false
};
/** @type {?} */
var customActionActive = false;
/**
* @return {?}
*/
export function resetCustomAction() {
customActionActive = false;
}
// public API for custom actions. Custom action always wins
/**
* @param {?} type
* @param {?=} entityIds
* @return {?}
*/
export function logAction(type, entityIds) {
setAction(type, entityIds);
customActionActive = true;
}
/**
* @param {?} type
* @param {?=} entityIds
* @return {?}
*/
export function setAction(type, entityIds) {
if (customActionActive === false) {
currentAction.type = type;
currentAction.entityIds = entityIds;
}
}
/**
* @param {?=} skip
* @return {?}
*/
export function setSkipAction(skip) {
if (skip === void 0) { skip = true; }
currentAction.skip = skip;
}
/**
* @param {?} action
* @param {?=} entityIds
* @return {?}
*/
export function action(action, entityIds) {
return (/**
* @param {?} target
* @param {?} propertyKey
* @param {?} descriptor
* @return {?}
*/
function (target, propertyKey, descriptor) {
/** @type {?} */
var originalMethod = descriptor.value;
descriptor.value = (/**
* @param {...?} args
* @return {?}
*/
function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
logAction(action, entityIds);
return originalMethod.apply(this, args);
});
return descriptor;
});
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BkYXRvcmFtYS9ha2l0YS8iLCJzb3VyY2VzIjpbInNyYy9hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsTUFBTSxLQUFPLGFBQWEsR0FBRztJQUMzQixJQUFJLEVBQUUsSUFBSTtJQUNWLFNBQVMsRUFBRSxJQUFJO0lBQ2YsSUFBSSxFQUFFLEtBQUs7Q0FDWjs7SUFFRyxrQkFBa0IsR0FBRyxLQUFLOzs7O0FBRTlCLE1BQU0sVUFBVSxpQkFBaUI7SUFDL0Isa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBQzdCLENBQUM7Ozs7Ozs7QUFHRCxNQUFNLFVBQVUsU0FBUyxDQUFDLElBQVksRUFBRSxTQUFVO0lBQ2hELFNBQVMsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0Isa0JBQWtCLEdBQUcsSUFBSSxDQUFDO0FBQzVCLENBQUM7Ozs7OztBQUVELE1BQU0sVUFBVSxTQUFTLENBQUMsSUFBWSxFQUFFLFNBQVU7SUFDaEQsSUFBSSxrQkFBa0IsS0FBSyxLQUFLLEVBQUU7UUFDaEMsYUFBYSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDMUIsYUFBYSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7S0FDckM7QUFDSCxDQUFDOzs7OztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsSUFBVztJQUFYLHFCQUFBLEVBQUEsV0FBVztJQUN2QyxhQUFhLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUM1QixDQUFDOzs7Ozs7QUFFRCxNQUFNLFVBQVUsTUFBTSxDQUFDLE1BQWMsRUFBRSxTQUFVO0lBQy9DOzs7Ozs7SUFBTyxVQUFTLE1BQVcsRUFBRSxXQUFtQixFQUFFLFVBQThCOztZQUN4RSxjQUFjLEdBQUcsVUFBVSxDQUFDLEtBQUs7UUFDdkMsVUFBVSxDQUFDLEtBQUs7Ozs7UUFBRztZQUFTLGNBQU87aUJBQVAsVUFBTyxFQUFQLHFCQUFPLEVBQVAsSUFBTztnQkFBUCx5QkFBTzs7WUFDakMsU0FBUyxDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3QixPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQSxDQUFDO1FBRUYsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQyxFQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBjdXJyZW50QWN0aW9uID0ge1xuICB0eXBlOiBudWxsLFxuICBlbnRpdHlJZHM6IG51bGwsXG4gIHNraXA6IGZhbHNlXG59O1xuXG5sZXQgY3VzdG9tQWN0aW9uQWN0aXZlID0gZmFsc2U7XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldEN1c3RvbUFjdGlvbigpIHtcbiAgY3VzdG9tQWN0aW9uQWN0aXZlID0gZmFsc2U7XG59XG5cbi8vIHB1YmxpYyBBUEkgZm9yIGN1c3RvbSBhY3Rpb25zLiBDdXN0b20gYWN0aW9uIGFsd2F5cyB3aW5zXG5leHBvcnQgZnVuY3Rpb24gbG9nQWN0aW9uKHR5cGU6IHN0cmluZywgZW50aXR5SWRzPykge1xuICBzZXRBY3Rpb24odHlwZSwgZW50aXR5SWRzKTtcbiAgY3VzdG9tQWN0aW9uQWN0aXZlID0gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldEFjdGlvbih0eXBlOiBzdHJpbmcsIGVudGl0eUlkcz8pIHtcbiAgaWYgKGN1c3RvbUFjdGlvbkFjdGl2ZSA9PT0gZmFsc2UpIHtcbiAgICBjdXJyZW50QWN0aW9uLnR5cGUgPSB0eXBlO1xuICAgIGN1cnJlbnRBY3Rpb24uZW50aXR5SWRzID0gZW50aXR5SWRzO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRTa2lwQWN0aW9uKHNraXAgPSB0cnVlKSB7XG4gIGN1cnJlbnRBY3Rpb24uc2tpcCA9IHNraXA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhY3Rpb24oYWN0aW9uOiBzdHJpbmcsIGVudGl0eUlkcz8pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKHRhcmdldDogYW55LCBwcm9wZXJ0eUtleTogc3RyaW5nLCBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3IpIHtcbiAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgIGxvZ0FjdGlvbihhY3Rpb24sIGVudGl0eUlkcyk7XG4gICAgICByZXR1cm4gb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyk7XG4gICAgfTtcblxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICB9O1xufVxuIl19