core-native
Version:
A lightweight framework based on React Native + Redux + Redux Saga, in strict TypeScript.
64 lines • 2.7 kB
JavaScript
import { __generator, __read, __spreadArray, __values } from "tslib";
import {} from "../module";
import { Module } from "../platform/Module";
import {} from "../reducer";
import { app } from "../app";
import { stringifyWithMask } from "../util/json-util";
import {} from "../Logger";
import {} from "../typed-saga";
export { Interval } from "./Interval";
export { Loading } from "./Loading";
export { Log } from "./Log";
export { Mutex } from "./Mutex";
export { RetryOnNetworkConnectionError } from "./RetryOnNetworkConnectionError";
export { SilentOnNetworkConnectionError } from "./SilentOnNetworkConnectionError";
/**
* A helper for ActionHandler functions (Saga).
*/
export function createActionHandlerDecorator(interceptor) {
return function (target, propertyKey, descriptor) {
var fn = descriptor.value;
descriptor.value = function () {
var _i, boundFn;
var _a;
var args = [];
for (_i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return __generator(this, function (_b) {
switch (_b.label) {
case 0:
boundFn = fn.bind.apply(fn, __spreadArray([this], __read(args), false));
// Do not use fn.actionName, it returns undefined
// The reason is, fn is created before module register(), and the actionName had not been attached then
boundFn.actionName = descriptor.value.actionName;
boundFn.maskedParams = stringifyWithMask.apply(void 0, __spreadArray([((_a = app.loggerConfig) === null || _a === void 0 ? void 0 : _a.maskedKeywords) || [], "***"], __read(args), false)) || "[No Parameter]";
return [5 /*yield**/, __values(interceptor(boundFn, this))];
case 1:
_b.sent();
return [2 /*return*/];
}
});
};
return descriptor;
};
}
/**
* A helper for regular functions.
*/
export function createRegularDecorator(interceptor) {
return function (target, propertyKey, descriptor) {
var fn = descriptor.value;
descriptor.value = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var rootState = app.store.getState();
var logger = app.logger;
interceptor(fn.bind.apply(fn, __spreadArray([this], __read(args), false)), rootState, logger);
};
return descriptor;
};
}
//# sourceMappingURL=index.js.map