UNPKG

@vxe-ui/core

Version:
64 lines (63 loc) 1.75 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.interceptor = void 0; var _xeUtils = _interopRequireDefault(require("xe-utils")); var _log = require("./log"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const storeMap = {}; const interceptor = exports.interceptor = { mixin(options) { _xeUtils.default.each(options, (render, type) => { interceptor.add(type, render); }); return interceptor; }, get(type) { return storeMap[type] || []; }, add(type, render) { // 兼容 if (_xeUtils.default.isFunction(render)) { // if (process.env.NODE_ENV === 'development') { // log.warn('vxe.error.delProp', ['interceptor -> callback', 'tableInterceptorMethod']) // } render = { tableInterceptorMethod: render }; } const callback = render.tableInterceptorMethod; if (callback) { let eList = storeMap[type]; if (!eList) { eList = storeMap[type] = []; } // 检测重复 if (process.env.NODE_ENV === 'development') { if (eList.indexOf(callback) > -1) { _log.log.warn('vxe.error.coverProp', ['Interceptor', type]); } } eList.push(callback); } return interceptor; }, delete(type, render) { const eList = storeMap[type]; if (eList) { // 兼容 if (_xeUtils.default.isFunction(render)) { render = { tableInterceptorMethod: render }; } const callback = render ? render.tableInterceptorMethod : null; if (callback) { _xeUtils.default.remove(eList, fn => fn === callback); } else { delete storeMap[type]; } } } };