mdx-js / eslint-mdx

ESLint Parser/Plugin for MDX
https://npmjs.org/eslint-plugin-mdx
MIT License
263 stars 32 forks source link

TypeError: Cannot use 'in' operator to search for 'start' in undefined #520

Closed EthanShoeDev closed 8 months ago

EthanShoeDev commented 8 months ago

Initial checklist

Affected packages and versions

"eslint-plugin-mdx": "^3.1.4"

Link to runnable example

https://codesandbox.io/p/devbox/eslint-plugin-mdx-typeerror-remark-lint-xqwl2v

Steps to reproduce

Steps to reproduce:

  1. Start with MDX Loader with Next.js codesandbox from issue template.
  2. Install eslint and eslint-mdx
    npm i -D eslint-plugin-mdx eslint
  3. Add eslint config file .eslintrc. Config pulled directly from readme.
    {
    "extends": ["plugin:mdx/recommended"],
    "settings": {
    "mdx/code-blocks": true,
    "mdx/language-mapper": {}
    }
    }
  4. Install remark-lint. reference
    npm install vfile-reporter remark remark-preset-lint-consistent remark-preset-lint-recommended remark-lint-list-item-indent --save-dev
  5. Setup remark config by adding remarkConfig to package.json. Config pulled directly from remark-lint readme.
  6. Remove the trailing new line from pages\index.mdx.
  7. Run npx eslint . --ext mdx and result is:
    
    /workspace git:(master) ✗ npx eslint . --ext mdx

Oops! Something went wrong! :(

ESLint: 8.56.0

TypeError: Cannot use 'in' operator to search for 'start' in undefined Occurred while linting /workspace/pages/index.mdx:1 Rule: "mdx/remark" at Program (/workspace/node_modules/eslint-plugin-mdx/lib/rules/remark.js:67:38) at ruleErrorHandler (/workspace/node_modules/eslint/lib/linter/linter.js:1076:28) at /workspace/node_modules/eslint/lib/linter/safe-emitter.js:45:58 at Array.forEach () at Object.emit (/workspace/node_modules/eslint/lib/linter/safe-emitter.js:45:38) at NodeEventGenerator.applySelector (/workspace/node_modules/eslint/lib/linter/node-event-generator.js:297:26) at NodeEventGenerator.applySelectors (/workspace/node_modules/eslint/lib/linter/node-event-generator.js:326:22) at NodeEventGenerator.enterNode (/workspace/node_modules/eslint/lib/linter/node-event-generator.js:340:14) at CodePathAnalyzer.enterNode (/workspace/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:803:23) at /workspace/node_modules/eslint/lib/linter/linter.js:1111:32


### Expected behavior

eslint should output:

```bash
/workspace git:(master) ✗ npx eslint . --ext mdx

/workspace/pages/index.mdx
  1:1  warning  Missing newline character at end of file  remark-lint-final-newline

✖ 1 problem (0 errors, 1 warning)
  0 errors and 1 warning potentially fixable with the `--fix` option.

Actual behavior

eslint outputs:

/workspace git:(master) ✗ npx eslint . --ext mdx

Oops! Something went wrong! :(

ESLint: 8.56.0

TypeError: Cannot use 'in' operator to search for 'start' in undefined
Occurred while linting /workspace/pages/index.mdx:1
Rule: "mdx/remark"
    at Program (/workspace/node_modules/eslint-plugin-mdx/lib/rules/remark.js:67:38)
    at ruleErrorHandler (/workspace/node_modules/eslint/lib/linter/linter.js:1076:28)
    at /workspace/node_modules/eslint/lib/linter/safe-emitter.js:45:58
    at Array.forEach (<anonymous>)
    at Object.emit (/workspace/node_modules/eslint/lib/linter/safe-emitter.js:45:38)
    at NodeEventGenerator.applySelector (/workspace/node_modules/eslint/lib/linter/node-event-generator.js:297:26)
    at NodeEventGenerator.applySelectors (/workspace/node_modules/eslint/lib/linter/node-event-generator.js:326:22)
    at NodeEventGenerator.enterNode (/workspace/node_modules/eslint/lib/linter/node-event-generator.js:340:14)
    at CodePathAnalyzer.enterNode (/workspace/node_modules/eslint/lib/linter/code-path-analysis/code-path-analyzer.js:803:23)
    at /workspace/node_modules/eslint/lib/linter/linter.js:1111:32

Runtime

Node v20

Package manager

npm v9

OS

Linux

Build and bundle tools

Next.js