import-js/eslint-plugin-import

Add 'allow' option to the no-relative-parent-imports rule or 'ignoreChildren' option to no-internal-modules rule.

Open

#1,118 opened on Jun 7, 2018

View on GitHub
 (4 comments) (7 reactions) (0 assignees)JavaScript (4,946 stars) (1,540 forks)batch import
acceptedenhancementhelp wantedquestion

Description

Our use case is to have some util classes/functions in a folder on top and then always import using relative path. Eg.

src/
 utils/
   util1.js
 comp1/
   index.js
 comp2/
   index.js

From src/comp1/index.js i'd like to be able to import from ../utils/util1 but prohibit import from ../comp2

To achieve this, I see two options:

  1. add 'allow' option to no-relative-parent-imports rule (in the same form as no-internal-modules 'allow'), eg.
"import/no-relative-parent-imports": [ "error", { "allow": ["**/src/utils/**"] } ]
  1. add 'ignoreChildren' option to no-internal-modules to only inspect parent's internal modules, eg.
"import/no-internal-modules": [ "error", { "allow": ["**/src/utils/**"], "ignoreChildren": true  } ]

I'm willing to provide a PR to any of the rules.

Contributor guide

Add 'allow' option to the no-relative-parent-imports rule or 'ignoreChildren' option to no-internal-modules rule. · import-js/eslint-plugin-import#1118 | Good First Issue