Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError: Cannot read property 'length' of undefined #130

Closed
legraphista opened this issue Oct 13, 2017 · 4 comments
Closed

TypeError: Cannot read property 'length' of undefined #130

legraphista opened this issue Oct 13, 2017 · 4 comments

Comments

@legraphista
Copy link
Contributor

Environment

  • Node Version: 6.10.0
  • Eslint-Watch Version: 3.1.2
  • Eslint Version: 4.8.0

Basic Description of the problem

Start the watcher, shows error, fix & save the file, the process breaks.

How to reproduce it

  1. Command: node_modules/eslint/bin/eslint.js ./ --quiet
$ node_modules/eslint/bin/eslint.js ./ --quiet

<project path>/src/index.js
  16:7  error  'x' is never reassigned. Use 'const' instead  prefer-const

✖ 1 problem (1 error, 0 warnings)
  1 error, 0 warnings potentially fixable with the `--fix` option.

  1. Command: ./node_modules/eslint-watch/bin/esw ./ -w --quiet
$ node_modules/eslint-watch/bin/esw -w --quiet
<project path>/src/index.js (1/0)
✖  16:7  'x' is never reassigned. Use 'const' instead  prefer-const

✖ 1 error (2:54:47 PM)



<project path>/node_modules/eslint-watch/src/formatters/simple-detail.js:29
results.forEach(function (result) {
      ^
TypeError: Cannot read property 'length' of undefined
at <project path>/node_modules/eslint-watch/src/formatters/simple-detail.js:33:10
at Array.forEach (native)
at simpleDetail (<project path>/node_modules/eslint-watch/src/formatters/simple-detail.js:29:11)
at lintFile (<project path>/node_modules/eslint-watch/src/watcher.js:92:16)
at FSWatcher.changeEvent (<project path>/node_modules/eslint-watch/src/watcher.js:111:9)
at emitOne (events.js:96:13)
at FSWatcher.emit (events.js:188:7)
at FSWatcher.<anonymous> (<project path>/node_modules/chokidar/index.js:196:15)
at FSWatcher._emit (<project path>/node_modules/chokidar/index.js:238:5)
at FSWatcher.<anonymous> (<project path>/node_modules/chokidar/lib/fsevents-handler.js:204:14)

Debug output:

I've replaced sources, file path, and project paths

  esw:internal-settings Eslint installed locally node_modules/.bin/eslint +0ms
  esw:internal-settings { eslintPath: 'node_modules/.bin/eslint',
  esw:internal-settings   platform: 'darwin',
  esw:internal-settings   isWindows: false } +2ms
  esw:eslint-cli Loaded +44ms
  esw:eslint-help Loaded +19ms
  esw:options Loaded +0ms
  esw:eslint-help Executing help +0ms
  esw:eslint-cli eslint: '--help' +2ms
  esw:executor node_modules/.bin/eslint [ '--help' ] +2ms
  esw:eslint-cli { exitCode: 0,
  esw:eslint-cli   message: 'eslint [options] file.js [file.js] [dir]\n\nBasic configuration:\n  -c, --config path::String      Use configuration from this file or shareable config\n  --no-eslintrc                  Disable use of configuration from .eslintrc\n  --env [String]                 Specify environments\n  --ext [String]                 Specify JavaScript file extensions - default: .js\n  --global [String]              Define global variables\n  --parser String                Specify the parser to be used\n  --parser-options Object        Specify parser options\n\nCaching:\n  --cache                        Only check changed files - default: false\n  --cache-file path::String      Path to the cache file. Deprecated: use --cache-location - default: .eslintcache\n  --cache-location path::String  Path to the cache file or directory\n\nSpecifying rules and plugins:\n  --rulesdir [path::String]      Use additional rules from this directory\n  --plugin [String]              Specify plugins\n  --rule Object                  Specify rules\n\nIgnoring files:\n  --ignore-path path::String     Specify path of ignore file\n  --no-ignore                    Disable use of ignore files and patterns\n  --ignore-pattern [String]      Pattern of files to ignore (in addition to those in .eslintignore)\n\nUsing stdin:\n  --stdin                        Lint code provided on <STDIN> - default: false\n  --stdin-filename String        Specify filename to process STDIN as\n\nHandling warnings:\n  --quiet                        Report errors only - default: false\n  --max-warnings Int             Number of warnings to trigger nonzero exit code - default: -1\n\nOutput:\n  -o, --output-file path::String  Specify file to write report to\n  -f, --format String            Use a specific output format - default: stylish\n  --color, --no-color            Force enabling/disabling of color\n\nMiscellaneous:\n  --init                         Run config initialization wizard - default: false\n  --fix                          Automatically fix problems\n  --debug                        Output debugging information\n  -h, --help                     Show help\n  -v, --version                  Output the version number\n  --no-inline-config             Prevent comments from changing config or rules\n  --report-unused-disable-directives  Adds reported errors for unused eslint-disable directives\n  --print-config path::String    Print the configuration for the given file\n' } +253ms
  esw:eslint-help Alias found: -c +2ms
  esw:eslint-help Parsing --config +1ms
  esw:eslint-help Parsing --no-eslintrc +0ms
  esw:eslint-help Parsing no option --no-eslintrc +0ms
  esw:eslint-help Parsing --env +0ms
  esw:eslint-help Parsing --ext +0ms
  esw:eslint-help Parsing --global +0ms
  esw:eslint-help Parsing --parser +0ms
  esw:eslint-help Parsing --parser-options +1ms
  esw:eslint-help Parsing --cache +0ms
  esw:eslint-help Parsing --cache-file +0ms
  esw:eslint-help Parsing --cache-location +0ms
  esw:eslint-help Parsing --rulesdir +0ms
  esw:eslint-help Parsing --plugin +0ms
  esw:eslint-help Parsing --rule +0ms
  esw:eslint-help Parsing --ignore-path +0ms
  esw:eslint-help Parsing --no-ignore +1ms
  esw:eslint-help Parsing no option --no-ignore +0ms
  esw:eslint-help Parsing --ignore-pattern +0ms
  esw:eslint-help Parsing --stdin +0ms
  esw:eslint-help Parsing --stdin-filename +1ms
  esw:eslint-help Parsing --quiet +0ms
  esw:eslint-help Parsing --max-warnings +0ms
  esw:eslint-help Alias found: -o +0ms
  esw:eslint-help Parsing --output-file +0ms
  esw:eslint-help Alias found: -f +0ms
  esw:eslint-help Parsing --format +0ms
  esw:eslint-help Parsing --init +1ms
  esw:eslint-help Parsing --fix +0ms
  esw:eslint-help Parsing --debug +0ms
  esw:eslint-help Alias found: -h +0ms
  esw:eslint-help Parsing --help +0ms
  esw:eslint-help Alias found: -v +0ms
  esw:eslint-help Parsing --version +1ms
  esw:eslint-help Parsing --no-inline-config +0ms
  esw:eslint-help Parsing no option --no-inline-config +0ms
  esw:eslint-help Parsing --report-unused-disable-directives +0ms
  esw:eslint-help Parsing --print-config +1ms
  esw:watcher Loaded +195ms
  esw:arg-parser Loaded +1ms
  esw:esw-cli Loaded +0ms
  esw:esw-cli Eslint-Watch: 3.1.2 +0ms
  esw:esw-cli Arguments passed: [ '/Users/Stefan/.nvm/versions/node/v6.10.0/bin/node', '<project path>/node_modules/eslint-watch/bin/esw', '-w', '--quiet' ] +0ms
  esw:esw-cli Parsing args +2ms
  esw:arg-parser Directories to check: [] +1ms
  esw:arg-parser Args [ '-w', '--quiet' ] +0ms
  esw:arg-parser Pushing item: --quiet +0ms
  esw:arg-parser setting custom formatter +0ms
  esw:arg-parser GetPath: simple-detail +0ms
  esw:arg-parser <project path>/node_modules/eslint-watch/build/formatters/simple-detail +0ms
  esw:arg-parser Setting default path: ./ +0ms
  esw:esw-cli Running initial lint +0ms
  esw:esw-cli [ '--quiet',
  esw:esw-cli   '-f',
  esw:esw-cli   '<project path>/node_modules/eslint-watch/build/formatters/simple-detail',
  esw:esw-cli   './' ] +1ms
  esw:eslint-cli eslint: '--quiet -f <project path>/node_modules/eslint-watch/build/formatters/simple-detail ./' +0ms
  esw:executor node_modules/.bin/eslint [ '--quiet',
  '-f',
  '<project path>/node_modules/eslint-watch/build/formatters/simple-detail',
  './' ] +1ms
  esw:simple-detail loaded +0ms
  esw:simple-detail [ { filePath: '<file path>',
  esw:simple-detail     messages: [ [Object] ],
  esw:simple-detail     errorCount: 1,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 1,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>' } ] +7ms
<project path>/src/index.js (1/0)
  ✖  16:7  'x' is never reassigned. Use 'const' instead  prefer-const

✖ 1 error (2:56:48 PM)

  esw:eslint-cli { exitCode: 1, message: '' } +3s
  esw:esw-cli lint completed. Exit Code: 1 +1ms

  esw:esw-cli -w seen +0ms
  esw:watcher { useEslintrc: true, ignore: true, format: 'simple-detail' } +52ms
  esw:watcher { watch: true,
  esw:watcher   quiet: true,
  esw:watcher   format: 'simple-detail',
  esw:watcher   eslintrc: true,
  esw:watcher   ignore: true,
  esw:watcher   inlineConfig: true,
  esw:watcher   _: [] } +0ms
  esw:watcher Trying to load formatter for re-lint from ./formatters/simple-detail +1ms
  esw:simple-detail loaded +7ms
  esw:watcher Watching: [ '<project path>' ] +2ms
  esw:watcher Changed: <project path>/src/index.js +169ms
  esw:watcher <project path>/src/index.js undefined +4ms
  esw:watcher lintFile: <project path> +0ms
  esw:simple-detail [ { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 2,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 9,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 12,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 12,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 14,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 8,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 9,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 6,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 1,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 17,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 3,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 6,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 3,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 3,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 3,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 5,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 1,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 4,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 4,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 1,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 9,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 9,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 16,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 50,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 5,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 4,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 4,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 13,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 9,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 6,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 14,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 8,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 3,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 21,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 4,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 6,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 3,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 6,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 1,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 11,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 0,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0 },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 4,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 21,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 3,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 10,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 9,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 7,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 7,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 14,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 24,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 3,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 4,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 12,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 5,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 5,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 14,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 6,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 6,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 28,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 14,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 9,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 0,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined },
  esw:simple-detail   ... 80 more items ] +3s

<project path>/node_modules/eslint-watch/src/formatters/simple-detail.js:29
  results.forEach(function (result) {
          ^
TypeError: Cannot read property 'length' of undefined
    at <project path>/node_modules/eslint-watch/src/formatters/simple-detail.js:33:10
    at Array.forEach (native)
    at simpleDetail (<project path>/node_modules/eslint-watch/src/formatters/simple-detail.js:29:11)
    at lintFile (<project path>/node_modules/eslint-watch/src/watcher.js:92:16)
    at FSWatcher.changeEvent (<project path>/node_modules/eslint-watch/src/watcher.js:111:9)
    at emitOne (events.js:96:13)
    at FSWatcher.emit (events.js:188:7)
    at FSWatcher.<anonymous> (<project path>/node_modules/chokidar/index.js:196:15)
    at FSWatcher._emit (<project path>/node_modules/chokidar/index.js:238:5)
    at FSWatcher.<anonymous> (<project path>/node_modules/chokidar/lib/fsevents-handler.js:204:14)
  esw:esw-cli Exiting: 1 +152ms
@legraphista
Copy link
Contributor Author

Looks like messages is undefined for the first file instead of being an empty array:

  esw:simple-detail [ { filePath: '<file path>',
  esw:simple-detail     errorCount: 0,
  esw:simple-detail     warningCount: 2,
  esw:simple-detail     fixableErrorCount: 0,
  esw:simple-detail     fixableWarningCount: 2,
  esw:simple-detail     source: '<file source>',
  esw:simple-detail     messages: undefined }, <---------- should be []
  esw:simple-detail   { filePath: '<file path>',
  esw:simple-detail     messages: [],

And it breaks here: https://github.com/rizowski/eslint-watch/blob/master/src/formatters/simple-detail.js#L33

@legraphista
Copy link
Contributor Author

Looks like it only happens if --quiet flag is set, which makes me think that the issue is here:

function filterWarnings(results) {
return _.reduce(results, (curr, result) =>{
if (result.warningCount) {
let newResult = _.omit(result, 'messages');
newResult.messages = _.find(result.messages, (m) => m.severity > 1);
curr.push(newResult);
return curr;
}
curr.push(result);
return curr;
}, []);
}

@legraphista
Copy link
Contributor Author

The problem looks to be here:

newResult.messages = _.find(result.messages, (m) => m.severity > 1);

lodash.find returns an object (or undefined), not an array:
image

A simple fix is to replace the _.find with result.messages.filter

I'll open a PR with the fix

@rizowski
Copy link
Owner

@legraphista Nice attention to detail on this issue. Thanks for the PR. I'm a little busy at the moment but I will try to get this in before the end of the day.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants