UNPKG

@lx-frontend/minapp-monitor

Version:

a sdk for min-app monitor

175 lines (168 loc) 6.16 kB
'use strict'; /****************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */ /** @deprecated */ function __spreadArrays() { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; } var instance; var RealtimeLogManager = /** @class */ (function () { function RealtimeLogManager(options) { if (options === void 0) { options = {}; } // private static instance: RealtimeLogManager; this.logger = wx.getRealtimeLogManager ? wx.getRealtimeLogManager() : null; this.isEnable = options.enable === undefined ? true : options.enable; } RealtimeLogManager.prototype.validLogger = function () { if (!this.isEnable) return false; if (!this.logger) { console.warn('RealtimeLogManager is not supported, please check the version'); return false; } return true; }; /** * 数据脱敏 * @param data 需要脱敏的数据 */ RealtimeLogManager.prototype.filterData = function (data) { var jsonStr = JSON.stringify(data); var jsonFilter = jsonStr.replace(/(\d{3})\d+(\d{4})/gm, '$1****$2').replace(/(\d{6})\d+(\d{4})/gm, '$1******$2'); return jsonFilter; }; RealtimeLogManager.prototype.RouterCenter = function (type) { var _a; var _this = this; var args = []; for (var _i = 1; _i < arguments.length; _i++) { args[_i - 1] = arguments[_i]; } if (!this.validLogger()) return; // 获取当前系统信息 wx.getSystemInfoSync() || {}; // 获取当前路由信息 getCurrentPages() ? getCurrentPages().map(function (_) { return ({ route: _.route, options: _.options }); }) : {}; var params = args.map(function (_) { return _this.filterData(_); }); (_a = this.logger[type]).call.apply(_a, __spreadArrays([this.logger], params)); }; /** * 获取 RealtimeLogManager 实例,使用单例模式 * @param options RealtimeLogManager 配置项 * @returns RealtimeLogManager 实例 */ RealtimeLogManager.getInstance = function (options) { if (options === void 0) { options = {}; } if (!instance) { instance = new RealtimeLogManager(options); } return instance; }; Object.defineProperty(RealtimeLogManager.prototype, "enabled", { /** * 获取该实例的日志记录功能是否开启 */ get: function () { return this.isEnable === undefined ? true : this.isEnable; }, /** * 开启或关闭该实例的日志记录功能 */ set: function (value) { this.isEnable = value; }, enumerable: false, configurable: true }); /** * * @param args */ RealtimeLogManager.prototype.info = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.RouterCenter.apply(this, __spreadArrays(['info'], args)); }; /** * * @param args */ RealtimeLogManager.prototype.warn = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.RouterCenter.apply(this, __spreadArrays(['warn'], args)); }; /** * * @param args */ RealtimeLogManager.prototype.error = function () { var args = []; for (var _i = 0; _i < arguments.length; _i++) { args[_i] = arguments[_i]; } this.RouterCenter.apply(this, __spreadArrays(['error'], args)); }; /** * * @param msg * @returns */ RealtimeLogManager.prototype.addFilterMsg = function (msg) { if (!this.validLogger()) return; this.logger.addFilterMsg(msg); }; /** * * @param msg * @returns */ RealtimeLogManager.prototype.setFilterMsg = function (msg) { if (!this.validLogger()) return; this.logger.setFilterMsg(msg); }; /** * 获取当前系统信息 */ RealtimeLogManager.prototype.reportSysInfo = function () { if (!this.validLogger()) return; var sysInfo = wx.getSystemInfoSync() || {}; this.logger.info('------系统信息------', sysInfo); }; /** * 获取当前页面栈信息 * @param latest 获取最近的latest条页面栈 */ RealtimeLogManager.prototype.reportRouterInfo = function (latest) { if (latest === void 0) { latest = 0; } if (!this.validLogger()) return; var num = !+latest ? 0 : +latest; var routerInfo = getCurrentPages() ? getCurrentPages().slice(-num).map(function (_) { return ({ route: _.route, options: _.options }); }) : {}; this.logger.info('------路由信息------', routerInfo); }; return RealtimeLogManager; }()); module.exports = RealtimeLogManager;