import-js/eslint-plugin-import

[no-unused-modules] Improve for "import * as __ from __"

Open

#1,775 opened on May 21, 2020

View on GitHub
 (6 comments) (1 reaction) (0 assignees)JavaScript (4,946 stars) (1,540 forks)batch import
enhancementhelp wantedrule proposal

Description

If a file with named exports is imported as import * as xxx from './xxx' the rule assumes that all exports of this file have been used.

Would it be possible to report exports that never have been accessed?

Example:

given file-f:

import * as fileG from './file-g'

const x = fileG.a
fileG.b()

and file-g

export const a = 7 // will not be reported
export const b = () => {} // will not be reported
export const c = 5 // will be reported

Of course this can only work as long as a module is not access like this:

import * as fileG from './fileG'
fileG['b']()

In this case the current behaviour would apply and nothing would be reported.

We heavily rely on the import * as __ from __ syntax, so we would rely profit from this change. In any case, thanks a lot for all the effort that went into that plugin already!

Contributor guide