console-feed-modern
Version:
A React component that displays console logs from the current page, an iframe or transported across a server
82 lines • 4.75 kB
JavaScript
import GUID from './GUID';
import * as Timing from './methods/timing';
import * as Count from './methods/count';
import * as Assert from './methods/assert';
/**
* Parses a console log and converts it to a special Log object
* @argument method The console method to parse
* @argument data The arguments passed to the console method
*/
function Parse(method, data, staticID) {
// Create an ID
const id = staticID || GUID();
// Parse the methods
switch (method) {
case 'clear': {
return {
method,
id
};
}
case 'count': {
const label = typeof data[0] === 'string' ? data[0] : 'default';
if (!label)
return false;
return {
...Count.increment(label),
id
};
}
case 'time':
case 'timeEnd': {
const label = typeof data[0] === 'string' ? data[0] : 'default';
if (!label)
return false;
if (method === 'time') {
Timing.start(label);
return false;
}
return {
...Timing.stop(label),
id
};
}
case 'assert': {
const valid = data.length !== 0;
if (valid) {
const assertion = Assert.test(data[0], ...data.slice(1));
if (assertion) {
return {
...assertion,
id
};
}
}
return false;
}
case 'error': {
const errors = data.map(error => {
try {
return error.stack || error;
}
catch (e) {
return error;
}
});
return {
method,
id,
data: errors
};
}
default: {
return {
method,
id,
data
};
}
}
}
export default Parse;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvSG9vay9wYXJzZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLElBQUksTUFBTSxRQUFRLENBQUE7QUFFekIsT0FBTyxLQUFLLE1BQU0sTUFBTSxrQkFBa0IsQ0FBQTtBQUMxQyxPQUFPLEtBQUssS0FBSyxNQUFNLGlCQUFpQixDQUFBO0FBQ3hDLE9BQU8sS0FBSyxNQUFNLE1BQU0sa0JBQWtCLENBQUE7QUFFMUM7Ozs7R0FJRztBQUNILFNBQVMsS0FBSyxDQUNaLE1BQWUsRUFDZixJQUFXLEVBQ1gsUUFBaUI7SUFFakIsZUFBZTtJQUNmLE1BQU0sRUFBRSxHQUFHLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQTtJQUU3QixvQkFBb0I7SUFDcEIsUUFBUSxNQUFNLEVBQUU7UUFDZCxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQ1osT0FBTztnQkFDTCxNQUFNO2dCQUNOLEVBQUU7YUFDSCxDQUFBO1NBQ0Y7UUFFRCxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQ1osTUFBTSxLQUFLLEdBQUcsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQTtZQUMvRCxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLEtBQUssQ0FBQTtZQUV4QixPQUFPO2dCQUNMLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7Z0JBQ3pCLEVBQUU7YUFDSCxDQUFBO1NBQ0Y7UUFFRCxLQUFLLE1BQU0sQ0FBQztRQUNaLEtBQUssU0FBUyxDQUFDLENBQUM7WUFDZCxNQUFNLEtBQUssR0FBRyxPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFBO1lBQy9ELElBQUksQ0FBQyxLQUFLO2dCQUFFLE9BQU8sS0FBSyxDQUFBO1lBRXhCLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtnQkFDckIsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQTtnQkFDbkIsT0FBTyxLQUFLLENBQUE7YUFDYjtZQUVELE9BQU87Z0JBQ0wsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztnQkFDckIsRUFBRTthQUNILENBQUE7U0FDRjtRQUVELEtBQUssUUFBUSxDQUFDLENBQUM7WUFDYixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQTtZQUUvQixJQUFJLEtBQUssRUFBRTtnQkFDVCxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtnQkFDeEQsSUFBSSxTQUFTLEVBQUU7b0JBQ2IsT0FBTzt3QkFDTCxHQUFHLFNBQVM7d0JBQ1osRUFBRTtxQkFDSCxDQUFBO2lCQUNGO2FBQ0Y7WUFFRCxPQUFPLEtBQUssQ0FBQTtTQUNiO1FBRUQsS0FBSyxPQUFPLENBQUMsQ0FBQztZQUNaLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzlCLElBQUk7b0JBQ0YsT0FBTyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQTtpQkFDNUI7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsT0FBTyxLQUFLLENBQUE7aUJBQ2I7WUFDSCxDQUFDLENBQUMsQ0FBQTtZQUVGLE9BQU87Z0JBQ0wsTUFBTTtnQkFDTixFQUFFO2dCQUNGLElBQUksRUFBRSxNQUFNO2FBQ2IsQ0FBQTtTQUNGO1FBRUQsT0FBTyxDQUFDLENBQUM7WUFDUCxPQUFPO2dCQUNMLE1BQU07Z0JBQ04sRUFBRTtnQkFDRixJQUFJO2FBQ0wsQ0FBQTtTQUNGO0tBQ0Y7QUFDSCxDQUFDO0FBRUQsZUFBZSxLQUFLLENBQUEifQ==