ng2-logger icon indicating copy to clipboard operation
ng2-logger copied to clipboard

Error loading in IE 11

Open RicardoJBarrios opened this issue 7 years ago • 7 comments

Hello.

I have used ng2-logger in my project. It works fine in all browsers, but when try to load it in Explorer 11 the console gives me a SCRIPT1002: Syntax Error, and the line point to the log.js file, and the bundled line:

eval("\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst logger_1 = __webpack_require__(\"../../../../ng2-logger/logger.js\");\nconst level_1 = __webpack_require__(\"../../../../ng2-logger/level.js\");\nconst display_1 = __webpack_require__(\"../../../../ng2-logger/display.js\");\nconst include_1 = __webpack_require__(\"../../../../ng2-logger/include.js\");\nconst helper_1 = __webpack_require__(\"../../../../ng2-logger/helper.js\");\nif (helper_1.isNode) {\n  var randomcolor = __webpack_require__(\"../../../../randomcolor/randomColor.js\");\n}\nclass Log {\n  static create(name, ...level) {\n    let i;\n    if (Log.instances[name] === undefined) {\n      i = new logger_1.Logger(name, Log.getRandomColor(), Log.isDevelopmentMode, level, Log.isMutedModule(name), Log.levels.length > 0 ? Log.fixedWidth : undefined, Log.levels.length > 0 ? Log.display : undefined);\n      Log.instances[name] = i;\n    }\n    else {\n      i = Log.instances[name];\n    }\n    return i;\n  }\n  static getRandomColor() {\n    if (helper_1.isNode) {\n      return randomcolor({ luminosity: 'light', count: 10 });\n    }\n    let letters = '012345'.split('');\n    let color = '#';\n    color += letters[Math.round(Math.random() * 5)];\n    letters = '0123456789ABCDEF'.split('');\n    for (let i = 0; i < 5; i++) {\n      color += letters[Math.round(Math.random() * 15)];\n    }\n    if (color === undefined)\n      return this.getRandomColor();\n    return color;\n  }\n  static display(name, data, incomming, moduleName) {\n    if (!include_1.contain(Log.levels, incomming))\n      return;\n    if (incomming === level_1.Level.DATA) {\n      display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.DATA, Log.instances[moduleName].fixedWidth);\n    }\n    if (incomming === level_1.Level.ERROR) {\n      display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.ERROR, Log.instances[moduleName].fixedWidth);\n    }\n    if (incomming === level_1.Level.INFO) {\n      display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.INFO, Log.instances[moduleName].fixedWidth);\n    }\n    if (incomming === level_1.Level.WARN) {\n      display_1.Display.msg(name, data, name, Log.instances[moduleName].color, level_1.Level.WARN, Log.instances[moduleName].fixedWidth);\n    }\n  }\n  static onlyLevel(...level) {\n    if (Log._logOnly) {\n      console.error('You should use funcion onlyLevel only once');\n      return;\n    }\n    if (Log._logOnly)\n      Log._logOnly = true;\n    if (level.length === 0)\n      return;\n    Log.levels = level;\n  }\n  static onlyModules(...modules) {\n    if (Log._logModules) {\n      console.error('You should use funcion onlyModules only once');\n      return;\n    }\n    if (modules.length === 0)\n      return;\n    Log.modules = modules;\n    Log.muteAllOtherModules();\n  }\n  static isMutedModule(moduleName) {\n    if (Log.modules.length == 0)\n      return false;\n    if (!include_1.contain(Log.modules, moduleName))\n      return true;\n    return false;\n  }\n  static muteAllOtherModules() {\n    for (var moduleName in Log.instances) {\n      if (!include_1.contain(Log.modules, moduleName))\n        Log.instances[moduleName].mute();\n    }\n  }\n  static setProductionMode() {\n    if (Log.modeIsSet) {\n      console.error('Mode is already set');\n      return;\n    }\n    if (console !== undefined && console.clear !== undefined) {\n      setTimeout(() => {\n        console.clear();\n        console.log = () => { };\n        console.error = () => { };\n        console.warn = () => { };\n        console.info = () => { };\n      });\n    }\n    logger_1.Logger.isProductionMode = true;\n    Log.isDevelopmentMode = false;\n  }\n}\nLog.instances = {};\nLog.fixedWidth = 0;\nLog._logOnly = false;\nLog.levels = [];\nLog._logModules = false;\nLog.modules = [];\nLog.isDevelopmentMode = true;\nLog.modeIsSet = false;\nexports.Log = Log;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkM6L1VzZXJzL1JpY2FyZG8vUHJveWVjdG9zL253ZS9ud2UtYW5ndWxhci9ub2RlX21vZHVsZXMvbmcyLWxvZ2dlci9sb2cuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSw4Q0FBOEMsY0FBYztBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQixpQ0FBaUM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQixPQUFPO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQiw4QkFBOEI7QUFDOUIsOEJBQThCO0FBQzlCLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6Ii4uLy4uLy4uLy4uL25nMi1sb2dnZXIvbG9nLmpzLmpzIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHsgdmFsdWU6IHRydWUgfSk7XG5jb25zdCBsb2dnZXJfMSA9IHJlcXVpcmUoXCIuL2xvZ2dlclwiKTtcbmNvbnN0IGxldmVsXzEgPSByZXF1aXJlKFwiLi9sZXZlbFwiKTtcbmNvbnN0IGRpc3BsYXlfMSA9IHJlcXVpcmUoXCIuL2Rpc3BsYXlcIik7XG5jb25zdCBpbmNsdWRlXzEgPSByZXF1aXJlKFwiLi9pbmNsdWRlXCIpO1xuY29uc3QgaGVscGVyXzEgPSByZXF1aXJlKFwiLi9oZWxwZXJcIik7XG5pZiAoaGVscGVyXzEuaXNOb2RlKSB7XG4gIHZhciByYW5kb21jb2xvciA9IHJlcXVpcmUoJ3JhbmRvbWNvbG9yJyk7XG59XG5jbGFzcyBMb2cge1xuICBzdGF0aWMgY3JlYXRlKG5hbWUsIC4uLmxldmVsKSB7XG4gICAgbGV0IGk7XG4gICAgaWYgKExvZy5pbnN0YW5jZXNbbmFtZV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgaSA9IG5ldyBsb2dnZXJfMS5Mb2dnZXIobmFtZSwgTG9nLmdldFJhbmRvbUNvbG9yKCksIExvZy5pc0RldmVsb3BtZW50TW9kZSwgbGV2ZWwsIExvZy5pc011dGVkTW9kdWxlKG5hbWUpLCBMb2cubGV2ZWxzLmxlbmd0aCA+IDAgPyBMb2cuZml4ZWRXaWR0aCA6IHVuZGVmaW5lZCwgTG9nLmxldmVscy5sZW5ndGggPiAwID8gTG9nLmRpc3BsYXkgOiB1bmRlZmluZWQpO1xuICAgICAgTG9nLmluc3RhbmNlc1tuYW1lXSA9IGk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgaSA9IExvZy5pbnN0YW5jZXNbbmFtZV07XG4gICAgfVxuICAgIHJldHVybiBpO1xuICB9XG4gIHN0YXRpYyBnZXRSYW5kb21Db2xvcigpIHtcbiAgICBpZiAoaGVscGVyXzEuaXNOb2RlKSB7XG4gICAgICByZXR1cm4gcmFuZG9tY29sb3IoeyBsdW1pbm9zaXR5OiAnbGlnaHQnLCBjb3VudDogMTAgfSk7XG4gICAgfVxuICAgIGxldCBsZXR0ZXJzID0gJzAxMjM0NScuc3BsaXQoJycpO1xuICAgIGxldCBjb2xvciA9ICcjJztcbiAgICBjb2xvciArPSBsZXR0ZXJzW01hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIDUpXTtcbiAgICBsZXR0ZXJzID0gJzAxMjM0NTY3ODlBQkNERUYnLnNwbGl0KCcnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgICAgY29sb3IgKz0gbGV0dGVyc1tNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiAxNSldO1xuICAgIH1cbiAgICBpZiAoY29sb3IgPT09IHVuZGVmaW5lZClcbiAgICAgIHJldHVybiB0aGlzLmdldFJhbmRvbUNvbG9yKCk7XG4gICAgcmV0dXJuIGNvbG9yO1xuICB9XG4gIHN0YXRpYyBkaXNwbGF5KG5hbWUsIGRhdGEsIGluY29tbWluZywgbW9kdWxlTmFtZSkge1xuICAgIGlmICghaW5jbHVkZV8xLmNvbnRhaW4oTG9nLmxldmVscywgaW5jb21taW5nKSlcbiAgICAgIHJldHVybjtcbiAgICBpZiAoaW5jb21taW5nID09PSBsZXZlbF8xLkxldmVsLkRBVEEpIHtcbiAgICAgIGRpc3BsYXlfMS5EaXNwbGF5Lm1zZyhuYW1lLCBkYXRhLCBuYW1lLCBMb2cuaW5zdGFuY2VzW21vZHVsZU5hbWVdLmNvbG9yLCBsZXZlbF8xLkxldmVsLkRBVEEsIExvZy5pbnN0YW5jZXNbbW9kdWxlTmFtZV0uZml4ZWRXaWR0aCk7XG4gICAgfVxuICAgIGlmIChpbmNvbW1pbmcgPT09IGxldmVsXzEuTGV2ZWwuRVJST1IpIHtcbiAgICAgIGRpc3BsYXlfMS5EaXNwbGF5Lm1zZyhuYW1lLCBkYXRhLCBuYW1lLCBMb2cuaW5zdGFuY2VzW21vZHVsZU5hbWVdLmNvbG9yLCBsZXZlbF8xLkxldmVsLkVSUk9SLCBMb2cuaW5zdGFuY2VzW21vZHVsZU5hbWVdLmZpeGVkV2lkdGgpO1xuICAgIH1cbiAgICBpZiAoaW5jb21taW5nID09PSBsZXZlbF8xLkxldmVsLklORk8pIHtcbiAgICAgIGRpc3BsYXlfMS5EaXNwbGF5Lm1zZyhuYW1lLCBkYXRhLCBuYW1lLCBMb2cuaW5zdGFuY2VzW21vZHVsZU5hbWVdLmNvbG9yLCBsZXZlbF8xLkxldmVsLklORk8sIExvZy5pbnN0YW5jZXNbbW9kdWxlTmFtZV0uZml4ZWRXaWR0aCk7XG4gICAgfVxuICAgIGlmIChpbmNvbW1pbmcgPT09IGxldmVsXzEuTGV2ZWwuV0FSTikge1xuICAgICAgZGlzcGxheV8xLkRpc3BsYXkubXNnKG5hbWUsIGRhdGEsIG5hbWUsIExvZy5pbnN0YW5jZXNbbW9kdWxlTmFtZV0uY29sb3IsIGxldmVsXzEuTGV2ZWwuV0FSTiwgTG9nLmluc3RhbmNlc1ttb2R1bGVOYW1lXS5maXhlZFdpZHRoKTtcbiAgICB9XG4gIH1cbiAgc3RhdGljIG9ubHlMZXZlbCguLi5sZXZlbCkge1xuICAgIGlmIChMb2cuX2xvZ09ubHkpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1lvdSBzaG91bGQgdXNlIGZ1bmNpb24gb25seUxldmVsIG9ubHkgb25jZScpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoTG9nLl9sb2dPbmx5KVxuICAgICAgTG9nLl9sb2dPbmx5ID0gdHJ1ZTtcbiAgICBpZiAobGV2ZWwubGVuZ3RoID09PSAwKVxuICAgICAgcmV0dXJuO1xuICAgIExvZy5sZXZlbHMgPSBsZXZlbDtcbiAgfVxuICBzdGF0aWMgb25seU1vZHVsZXMoLi4ubW9kdWxlcykge1xuICAgIGlmIChMb2cuX2xvZ01vZHVsZXMpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ1lvdSBzaG91bGQgdXNlIGZ1bmNpb24gb25seU1vZHVsZXMgb25seSBvbmNlJyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChtb2R1bGVzLmxlbmd0aCA9PT0gMClcbiAgICAgIHJldHVybjtcbiAgICBMb2cubW9kdWxlcyA9IG1vZHVsZXM7XG4gICAgTG9nLm11dGVBbGxPdGhlck1vZHVsZXMoKTtcbiAgfVxuICBzdGF0aWMgaXNNdXRlZE1vZHVsZShtb2R1bGVOYW1lKSB7XG4gICAgaWYgKExvZy5tb2R1bGVzLmxlbmd0aCA9PSAwKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGlmICghaW5jbHVkZV8xLmNvbnRhaW4oTG9nLm1vZHVsZXMsIG1vZHVsZU5hbWUpKVxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIHN0YXRpYyBtdXRlQWxsT3RoZXJNb2R1bGVzKCkge1xuICAgIGZvciAodmFyIG1vZHVsZU5hbWUgaW4gTG9nLmluc3RhbmNlcykge1xuICAgICAgaWYgKCFpbmNsdWRlXzEuY29udGFpbihMb2cubW9kdWxlcywgbW9kdWxlTmFtZSkpXG4gICAgICAgIExvZy5pbnN0YW5jZXNbbW9kdWxlTmFtZV0ubXV0ZSgpO1xuICAgIH1cbiAgfVxuICBzdGF0aWMgc2V0UHJvZHVjdGlvbk1vZGUoKSB7XG4gICAgaWYgKExvZy5tb2RlSXNTZXQpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ01vZGUgaXMgYWxyZWFkeSBzZXQnKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGNvbnNvbGUgIT09IHVuZGVmaW5lZCAmJiBjb25zb2xlLmNsZWFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBjb25zb2xlLmNsZWFyKCk7XG4gICAgICAgIGNvbnNvbGUubG9nID0gKCkgPT4geyB9O1xuICAgICAgICBjb25zb2xlLmVycm9yID0gKCkgPT4geyB9O1xuICAgICAgICBjb25zb2xlLndhcm4gPSAoKSA9PiB7IH07XG4gICAgICAgIGNvbnNvbGUuaW5mbyA9ICgpID0+IHsgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBsb2dnZXJfMS5Mb2dnZXIuaXNQcm9kdWN0aW9uTW9kZSA9IHRydWU7XG4gICAgTG9nLmlzRGV2ZWxvcG1lbnRNb2RlID0gZmFsc2U7XG4gIH1cbn1cbkxvZy5pbnN0YW5jZXMgPSB7fTtcbkxvZy5maXhlZFdpZHRoID0gMDtcbkxvZy5fbG9nT25seSA9IGZhbHNlO1xuTG9nLmxldmVscyA9IFtdO1xuTG9nLl9sb2dNb2R1bGVzID0gZmFsc2U7XG5Mb2cubW9kdWxlcyA9IFtdO1xuTG9nLmlzRGV2ZWxvcG1lbnRNb2RlID0gdHJ1ZTtcbkxvZy5tb2RlSXNTZXQgPSBmYWxzZTtcbmV4cG9ydHMuTG9nID0gTG9nO1xuXG5cblxuLy8vLy8vLy8vLy8vLy8vLy8vXG4vLyBXRUJQQUNLIEZPT1RFUlxuLy8gQzovVXNlcnMvUmljYXJkby9Qcm95ZWN0b3MvbndlL253ZS1hbmd1bGFyL25vZGVfbW9kdWxlcy9uZzItbG9nZ2VyL2xvZy5qc1xuLy8gbW9kdWxlIGlkID0gLi4vLi4vLi4vLi4vbmcyLWxvZ2dlci9sb2cuanNcbi8vIG1vZHVsZSBjaHVua3MgPSB2ZW5kb3IiXSwic291cmNlUm9vdCI6IndlYnBhY2s6Ly8vIn0=\n//# sourceURL=webpack-internal:///../../../../ng2-logger/log.js\n");

I have been doing lots of test, and tried to fix it, but cannot get the fix for the error. Any Idea or help?

I am using all polyfills from angular 5.2.

Thanks.

RicardoJBarrios avatar Jan 27 '18 10:01 RicardoJBarrios

Indeed since a certain version (v1 to v2) ng2-logger doesn't work on IE/Edge.

It seems to be the use of keywords unvailable in IE/Edge (const in for...of... loop).

You can use v1.0.13, it worked for me.

QuentinLeGoff avatar Jan 30 '18 15:01 QuentinLeGoff

@RicardoJBarrios try new version. Should be ok.

darekf77 avatar Jan 30 '18 18:01 darekf77

Ok for me 👍

QuentinLeGoff avatar Jan 31 '18 08:01 QuentinLeGoff

After deploy it seems it's not working with the AOT build. Same error with const/loops keywords.

QuentinLeGoff avatar Feb 06 '18 10:02 QuentinLeGoff

Hello again and sorry for the delay.

I have tested it with ie11, but the line var fs = require('fs'); in l.9 of backend-logging.js gives me an error. I commented it and all works as expected, even AOT compilation.

RicardoJBarrios avatar Feb 12 '18 17:02 RicardoJBarrios

@RicardoJBarrios try new version and "ng2-logger/browser" (or "ng2-logger/client"). It is a version without backend things....

darekf77 avatar Feb 15 '18 05:02 darekf77

I have tried the last version, and still have the fs error when try to launch the tests. Once the line is commented all works as expected.

RicardoJBarrios avatar Feb 17 '18 19:02 RicardoJBarrios