UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

113 lines (108 loc) 3.57 kB
'use strict'; 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;