darekf77 / ng2-logger

Isomorphic logger for Browser and NodeJS, ( typescript / javascript ) apps
MIT License
61 stars 17 forks source link

Error loading in IE 11 #29

Open RicardoJBarrios opened 6 years ago

RicardoJBarrios commented 6 years ago

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.

QuentinLeGoff commented 6 years ago

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.

darekf77 commented 6 years ago

@RicardoJBarrios try new version. Should be ok.

QuentinLeGoff commented 6 years ago

Ok for me 👍

QuentinLeGoff commented 6 years ago

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

RicardoJBarrios commented 6 years ago

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.

darekf77 commented 6 years ago

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

RicardoJBarrios commented 6 years ago

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.