Rule sonarjs/post-message with ESLint9 reports errors

Oops! Something went wrong! :frowning:

ESLint: 9.17.0

TypeError: Cannot read properties of undefined (reading 'type')
Occurred while linting /Users/jelly/project/movie-h5-next/apps/movie-h5-home/src/pages/main/index/components/hooks/use-city-selector.ts:119
Rule: "sonarjs/post-message"
    at isEventOriginalEvent (/Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint-plugin-sonarjs@3.0.1_eslint@9.17.0_jiti@2.4.2_/node_modules/eslint-plugin-sonarjs/cjs/S2819/rule.js:212:39)
    at findUnionEvent (/Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint-plugin-sonarjs@3.0.1_eslint@9.17.0_jiti@2.4.2_/node_modules/eslint-plugin-sonarjs/cjs/S2819/rule.js:136:13)
    at hasVerifiedOrigin (/Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint-plugin-sonarjs@3.0.1_eslint@9.17.0_jiti@2.4.2_/node_modules/eslint-plugin-sonarjs/cjs/S2819/rule.js:114:32)
    at checkAddEventListenerCall (/Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint-plugin-sonarjs@3.0.1_eslint@9.17.0_jiti@2.4.2_/node_modules/eslint-plugin-sonarjs/cjs/S2819/rule.js:93:10)
    at CallExpression[callee.property.name="addEventListener"] (/Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint-plugin-sonarjs@3.0.1_eslint@9.17.0_jiti@2.4.2_/node_modules/eslint-plugin-sonarjs/cjs/S2819/rule.js:42:17)
    at ruleErrorHandler (/Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint@9.17.0_jiti@2.4.2/node_modules/eslint/lib/linter/linter.js:1098:48)
    at /Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint@9.17.0_jiti@2.4.2/node_modules/eslint/lib/linter/safe-emitter.js:45:58
    at Array.forEach (<anonymous>)
    at Object.emit (/Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint@9.17.0_jiti@2.4.2/node_modules/eslint/lib/linter/safe-emitter.js:45:38)
    at NodeEventGenerator.applySelector (/Users/jelly/project/movie-h5-next/node_modules/.pnpm/eslint@9.17.0_jiti@2.4.2/node_modules/eslint/lib/linter/node-event-generator.js:297:26)

Hey there!

Can you shed some light on what’s in this file / on this line? A code snippet would be a big help.

  window.addEventListener('message', (event: MessageEvent) => {
    const {
      data: { message },
    } = event || {};
    if (message === 'PHA_ONSHOW') {
      handleResume({ notSupport: false });
    }
  });

“window.addEventListener(‘message’, (event: MessageEvent) => {” is in the line119

Hi, has there been any progress on this issue?

Hi @Shuanghong_Wang,

Thanks a lot for the report. This is definitely a bug, and we were able to reproduce it.

I created a Jira ticket to track the fix.

Regards,

Eric.