UNPKG

console-feed-modern

Version:

A React component that displays console logs from the current page, an iframe or transported across a server

46 lines 3.25 kB
import Methods from '../definitions/Methods'; import Parse from './parse'; import { Encode } from '../Transform'; // import Construct from './construct' /** * Hook a console constructor and forward messages to a callback * @argument console The Console constructor to Hook * @argument callback The callback to be called once a message is logged */ export default function Hook(console, callback, encode = true) { const TargetConsole = console; const Storage = { pointers: {}, src: { npm: 'https://npmjs.com/package/console-feed', github: 'https://github.com/samdenty99/console-feed' } }; // Override console methods for (let method of Methods) { const NativeMethod = TargetConsole[method]; // Override TargetConsole[method] = function () { // Pass back to native method NativeMethod.apply(this, arguments); // Parse arguments and send to transport const args = [].slice.call(arguments); // setTimeout to prevent lag setTimeout(() => { const parsed = Parse(method, args); if (parsed) { let encoded = parsed; if (encode) { encoded = Encode(parsed); } callback(encoded, parsed); } }); }; // Store native methods Storage.pointers[method] = NativeMethod; } TargetConsole.feed = Storage; return TargetConsole; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvSG9vay9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLE9BQU8sTUFBTSx3QkFBd0IsQ0FBQTtBQUU1QyxPQUFPLEtBQUssTUFBTSxTQUFTLENBQUE7QUFFM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGNBQWMsQ0FBQTtBQUNyQyxzQ0FBc0M7QUFFdEM7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsSUFBSSxDQUMxQixPQUFnQixFQUNoQixRQUFrQixFQUNsQixNQUFNLEdBQUcsSUFBSTtJQUViLE1BQU0sYUFBYSxHQUFHLE9BQXdCLENBQUE7SUFDOUMsTUFBTSxPQUFPLEdBQVk7UUFDdkIsUUFBUSxFQUFFLEVBQUU7UUFDWixHQUFHLEVBQUU7WUFDSCxHQUFHLEVBQUUsd0NBQXdDO1lBQzdDLE1BQU0sRUFBRSw0Q0FBNEM7U0FDckQ7S0FDRixDQUFBO0lBRUQsMkJBQTJCO0lBQzNCLEtBQUssSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFO1FBQzFCLE1BQU0sWUFBWSxHQUFHLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQTtRQUUxQyxXQUFXO1FBQ1gsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHO1lBQ3RCLDZCQUE2QjtZQUM3QixZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQTtZQUVuQyx3Q0FBd0M7WUFDeEMsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUE7WUFFckMsNEJBQTRCO1lBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2QsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXdCLEVBQUUsSUFBSSxDQUFDLENBQUE7Z0JBQ3BELElBQUksTUFBTSxFQUFFO29CQUNWLElBQUksT0FBTyxHQUFZLE1BQWlCLENBQUE7b0JBQ3hDLElBQUksTUFBTSxFQUFFO3dCQUNWLE9BQU8sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFZLENBQUE7cUJBQ3BDO29CQUNELFFBQVEsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7aUJBQzFCO1lBQ0gsQ0FBQyxDQUFDLENBQUE7UUFDSixDQUFDLENBQUE7UUFFRCx1QkFBdUI7UUFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxZQUFZLENBQUE7S0FDeEM7SUFFRCxhQUFhLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQTtJQUU1QixPQUFPLGFBQWEsQ0FBQTtBQUN0QixDQUFDIn0=