react-native-xenon
Version:
A powerful in-app debugging tool for React Native.
88 lines (87 loc) • 3.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _utils = require("../core/utils");
var _Interceptor = _interopRequireDefault(require("./Interceptor"));
var _class, _class2;
/* eslint-disable no-console */
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
function _applyDecoratedDescriptor(i, e, r, n, l) { var a = {}; return Object.keys(n).forEach(function (i) { a[i] = n[i]; }), a.enumerable = !!a.enumerable, a.configurable = !!a.configurable, ("value" in a || a.initializer) && (a.writable = !0), a = r.slice().reverse().reduce(function (r, n) { return n(i, e, r) || r; }, a), l && void 0 !== a.initializer && (a.value = a.initializer ? a.initializer.call(l) : void 0, a.initializer = void 0), void 0 === a.initializer ? (Object.defineProperty(i, e, a), null) : a; }
const originalConsoleError = console.error;
const originalConsoleInfo = console.info;
const originalConsoleLog = console.log;
const originalConsoleWarn = console.warn;
const originalConsoleTrace = console.trace;
const originalConsoleDebug = console.debug;
const originalConsoleTable = console.table;
const originalConsoleGroupCollapsed = console.groupCollapsed;
const originalConsoleGroupEnd = console.groupEnd;
const originalConsoleGroup = console.group;
let ConsoleInterceptor = exports.default = (0, _utils.singleton)(_class = (_class2 = class ConsoleInterceptor extends _Interceptor.default {
handlers = {
callback: null
};
enableInterception() {
if (this.isInterceptorEnabled) return;
const callback = this.handlers.callback;
console.error = function (...args) {
callback?.('error', args);
originalConsoleError.call(this, ...args);
};
console.info = function (...args) {
callback?.('info', args);
originalConsoleInfo.call(this, ...args);
};
console.log = function (...args) {
callback?.('log', args);
originalConsoleLog.call(this, ...args);
};
console.warn = function (...args) {
callback?.('warn', args);
originalConsoleWarn.call(this, ...args);
};
console.trace = function (...args) {
callback?.('trace', args);
originalConsoleTrace.call(this, ...args);
};
console.debug = function (...args) {
callback?.('debug', args);
originalConsoleDebug.call(this, ...args);
};
console.table = function (...args) {
callback?.('table', args);
originalConsoleTable.call(this, ...args);
};
console.groupCollapsed = function (...args) {
callback?.('groupCollapsed', args);
originalConsoleGroupCollapsed.call(this, ...args);
};
console.groupEnd = function (...args) {
callback?.('groupEnd', args);
originalConsoleGroupEnd.call(this, ...args);
};
console.group = function (...args) {
callback?.('group', args);
originalConsoleGroup.call(this, ...args);
};
this.isInterceptorEnabled = true;
}
disableInterception() {
if (!this.isInterceptorEnabled) return;
this.isInterceptorEnabled = false;
console.error = originalConsoleError;
console.info = originalConsoleInfo;
console.log = originalConsoleLog;
console.warn = originalConsoleWarn;
console.trace = originalConsoleTrace;
console.debug = originalConsoleDebug;
console.table = originalConsoleTable;
console.groupCollapsed = originalConsoleGroupCollapsed;
console.groupEnd = originalConsoleGroupEnd;
console.group = originalConsoleGroup;
this.handlers.callback = null;
}
}, _applyDecoratedDescriptor(_class2.prototype, "enableInterception", [_utils.frozen], Object.getOwnPropertyDescriptor(_class2.prototype, "enableInterception"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "disableInterception", [_utils.frozen], Object.getOwnPropertyDescriptor(_class2.prototype, "disableInterception"), _class2.prototype), _class2)) || _class;
//# sourceMappingURL=ConsoleInterceptor.js.map