rizowski/eslint-watch

TypeError: Cannot read property 'length' of undefined

Closed this issue · 4 comments

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

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

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;
}, []);
}

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

@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.