75 lines
11 KiB
JavaScript
75 lines
11 KiB
JavaScript
|
"use strict";
|
||
|
// -------------------------------------------------------------
|
||
|
// WARNING: this file is used by both the client and the server.
|
||
|
// Do not use any browser or node-specific API!
|
||
|
// -------------------------------------------------------------
|
||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||
|
const NATIVE_METHODS_PROPERTY_NAME = '_nativeMethods';
|
||
|
class BrowserConsoleMessages {
|
||
|
constructor(data, nativeMethods) {
|
||
|
const resultNativeMethods = this._ensureNativeMethods(nativeMethods);
|
||
|
resultNativeMethods.objectDefineProperty(this, NATIVE_METHODS_PROPERTY_NAME, { value: resultNativeMethods });
|
||
|
this.concat(data);
|
||
|
}
|
||
|
_ensureNativeMethods(nativeMethods) {
|
||
|
return nativeMethods || {
|
||
|
objectKeys: Object.keys,
|
||
|
arrayForEach: Array.prototype.forEach,
|
||
|
arrayConcat: Array.prototype.concat,
|
||
|
arraySlice: Array.prototype.slice,
|
||
|
objectDefineProperty: Object.defineProperty,
|
||
|
};
|
||
|
}
|
||
|
_getWindowIds(consoleMessages) {
|
||
|
return this[NATIVE_METHODS_PROPERTY_NAME].objectKeys(consoleMessages);
|
||
|
}
|
||
|
_copyArray(array) {
|
||
|
return this[NATIVE_METHODS_PROPERTY_NAME].arraySlice.call(array);
|
||
|
}
|
||
|
_concatArrays(array, anotherArray) {
|
||
|
return this[NATIVE_METHODS_PROPERTY_NAME].arrayConcat.call(array, anotherArray);
|
||
|
}
|
||
|
ensureMessageContainer(windowId) {
|
||
|
if (this[windowId])
|
||
|
return;
|
||
|
this[windowId] = {
|
||
|
log: [],
|
||
|
info: [],
|
||
|
warn: [],
|
||
|
error: [],
|
||
|
};
|
||
|
}
|
||
|
concat(consoleMessages) {
|
||
|
if (!consoleMessages)
|
||
|
return this;
|
||
|
const windowIds = this._getWindowIds(consoleMessages);
|
||
|
this[NATIVE_METHODS_PROPERTY_NAME].arrayForEach.call(windowIds, windowId => {
|
||
|
this.ensureMessageContainer(windowId);
|
||
|
this[windowId].log = this._concatArrays(this[windowId].log, consoleMessages[windowId].log);
|
||
|
this[windowId].info = this._concatArrays(this[windowId].info, consoleMessages[windowId].info);
|
||
|
this[windowId].warn = this._concatArrays(this[windowId].warn, consoleMessages[windowId].warn);
|
||
|
this[windowId].error = this._concatArrays(this[windowId].error, consoleMessages[windowId].error);
|
||
|
});
|
||
|
return this;
|
||
|
}
|
||
|
addMessage(type, msg, windowId) {
|
||
|
this.ensureMessageContainer(windowId);
|
||
|
this[windowId][type].push(msg);
|
||
|
}
|
||
|
getCopy() {
|
||
|
const copy = {};
|
||
|
const windowIds = this._getWindowIds(this);
|
||
|
this[NATIVE_METHODS_PROPERTY_NAME].arrayForEach.call(windowIds, windowId => {
|
||
|
copy[windowId] = {
|
||
|
log: this._copyArray(this[windowId].log),
|
||
|
info: this._copyArray(this[windowId].info),
|
||
|
warn: this._copyArray(this[windowId].warn),
|
||
|
error: this._copyArray(this[windowId].error),
|
||
|
};
|
||
|
});
|
||
|
return copy;
|
||
|
}
|
||
|
}
|
||
|
exports.default = BrowserConsoleMessages;
|
||
|
module.exports = exports.default;
|
||
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci1jb25zb2xlLW1lc3NhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3QtcnVuL2Jyb3dzZXItY29uc29sZS1tZXNzYWdlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsZ0VBQWdFO0FBQ2hFLGdFQUFnRTtBQUNoRSwrQ0FBK0M7QUFDL0MsZ0VBQWdFOztBQUVoRSxNQUFNLDRCQUE0QixHQUFHLGdCQUFnQixDQUFDO0FBRXRELE1BQXFCLHNCQUFzQjtJQUN2QyxZQUFhLElBQUksRUFBRSxhQUFhO1FBQzVCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXJFLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksRUFBRSw0QkFBNEIsRUFBRSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUM7UUFFN0csSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QixDQUFDO0lBRUQsb0JBQW9CLENBQUUsYUFBYTtRQUMvQixPQUFPLGFBQWEsSUFBSTtZQUNwQixVQUFVLEVBQVksTUFBTSxDQUFDLElBQUk7WUFDakMsWUFBWSxFQUFVLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTztZQUM3QyxXQUFXLEVBQVcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNO1lBQzVDLFVBQVUsRUFBWSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUs7WUFDM0Msb0JBQW9CLEVBQUUsTUFBTSxDQUFDLGNBQWM7U0FDOUMsQ0FBQztJQUNOLENBQUM7SUFFRCxhQUFhLENBQUUsZUFBZTtRQUMxQixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxRSxDQUFDO0lBRUQsVUFBVSxDQUFFLEtBQUs7UUFDYixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGFBQWEsQ0FBRSxLQUFLLEVBQUUsWUFBWTtRQUM5QixPQUFPLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxzQkFBc0IsQ0FBRSxRQUFRO1FBQzVCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQztZQUNkLE9BQU87UUFFWCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7WUFDYixHQUFHLEVBQUksRUFBRTtZQUNULElBQUksRUFBRyxFQUFFO1lBQ1QsSUFBSSxFQUFHLEVBQUU7WUFDVCxLQUFLLEVBQUUsRUFBRTtTQUNaLENBQUM7SUFDTixDQUFDO0lBRUQsTUFBTSxDQUFFLGVBQWU7UUFDbkIsSUFBSSxDQUFDLGVBQWU7WUFDaEIsT0FBTyxJQUFJLENBQUM7UUFFaEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV0RCxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUN2RSxJQUFJLENBQUMsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsR0FBSyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEdBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxFQUFFLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMvRixJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxHQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEVBQUUsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JHLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELFVBQVUsQ0FBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLFFBQVE7UUFDM0IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU87UUFDSCxNQUFNLElBQUksR0FBRyxFQUFFLENBQUM7UUFFaEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUzQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRTtZQUN2RSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUc7Z0JBQ2IsR0FBRyxFQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEdBQUcsQ0FBQztnQkFDMUMsSUFBSSxFQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDM0MsSUFBSSxFQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQztnQkFDM0MsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQzthQUMvQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0o7QUFuRkQseUNBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuLy8gV0FSTklORzogdGhpcyBmaWxlIGlzIHVzZWQgYnkgYm90aCB0aGUgY2xpZW50IGFuZCB0aGUgc2VydmVyLlxuLy8gRG8gbm90IHVzZSBhbnkgYnJvd3NlciBvciBub2RlLXNwZWNpZmljIEFQSSFcbi8vIC0tLS0tLS0tL
|