t-comm
Version:
专业、稳定、纯粹的工具库
113 lines (108 loc) • 3.57 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib_es6 = require('../tslib.es6-01322ba9.js');
/**
* 拦截路由
*
* @example
* ```ts
* uniHookRouter({
* navigateToHooks: [
* () => console.log('1')
* ],
* navigateBackHooks: [
* () => console.log('2')
* ],
* redirectToHooks: [
* () => console.log('3')
* ],
* debug: true,
* })
* ```
*/
function uniHookRouter(_a) {
var navigateToHooks = _a.navigateToHooks,
navigateBackHooks = _a.navigateBackHooks,
redirectToHooks = _a.redirectToHooks,
_b = _a.tryUniInterCeptor,
tryUniInterCeptor = _b === void 0 ? true : _b,
_c = _a.debug,
debug = _c === void 0 ? false : _c;
var originNavigateTo = uni.navigateTo;
var originNavigateBack = uni.navigateBack;
var originReplaceTo = uni.redirectTo;
var toDebug = function toDebug(name, callbacks) {
return {
invoke: function invoke() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
callbacks === null || callbacks === void 0 ? void 0 : callbacks.forEach(function (cb) {
return cb === null || cb === void 0 ? void 0 : cb.apply(void 0, args);
});
if (debug) {
console.log(">>> uniHookRouter ".concat(name, " invoke"));
}
},
success: function success() {
if (debug) {
console.log(">>> uniHookRouter ".concat(name, " success"));
}
},
fail: function fail() {
if (debug) {
console.log(">>> uniHookRouter ".concat(name, " fail"));
}
},
complete: function complete() {
if (debug) {
console.log(">>> uniHookRouter ".concat(name, " complete"));
}
}
};
};
if (tryUniInterCeptor && typeof uni.addInterceptor === 'function') {
uni.addInterceptor('navigateTo', tslib_es6.__assign({}, toDebug('navigateTo', navigateToHooks)));
uni.addInterceptor('navigateBack', tslib_es6.__assign({}, toDebug('navigateBack', navigateBackHooks)));
uni.addInterceptor('redirectTo', tslib_es6.__assign({}, toDebug('redirectTo', redirectToHooks)));
return;
}
if (originNavigateTo) {
uni.navigateTo = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
navigateToHooks === null || navigateToHooks === void 0 ? void 0 : navigateToHooks.forEach(function (cb) {
return cb === null || cb === void 0 ? void 0 : cb.apply(void 0, args);
});
originNavigateTo.apply(void 0, args);
};
}
if (originNavigateBack) {
uni.navigateBack = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
navigateBackHooks === null || navigateBackHooks === void 0 ? void 0 : navigateBackHooks.forEach(function (cb) {
return cb === null || cb === void 0 ? void 0 : cb.apply(void 0, args);
});
originNavigateBack.apply(void 0, args);
};
}
if (originReplaceTo) {
uni.redirectTo = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
redirectToHooks === null || redirectToHooks === void 0 ? void 0 : redirectToHooks.forEach(function (cb) {
return cb === null || cb === void 0 ? void 0 : cb.apply(void 0, args);
});
originReplaceTo.apply(void 0, args);
};
}
}
exports.uniHookRouter = uniHookRouter;