import-js/eslint-plugin-import

no-restricted-paths improve `except`

Open

#1,701 opened on Mar 26, 2020

View on GitHub
 (2 comments) (9 reactions) (0 assignees)JavaScript (1,540 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (4,946 stars)
PR merge metrics
 (Avg merge 138d 22h) (3 merged PRs in 30d)

Description

Hey I have a suggestion on how to improve the except option of the import/no-restricted-paths rule (and I'm happy to implement it if you think it is a good idea).

Let me start with my use case:

my-project
├── client
│   └── foo.js
│   └── baz.js
└── server
    └── bar
        └── index.js
        └── types.js

I can use this rule to forbid importing server-only files in my client code. That is nice. But at the same time I also still want to allow to import from type files even though they are in the server directory and this is where I'm limited, because I can currently only pass a path to except.

Instead I would love to either pass a glob pattern like this

// solution proposal 1
{ "zones": [ {
    "target": "./client",
    "from": "./server",
    "except": ["./**/types"]
} ] }

...or a regex would also work:

// solution proposal 2
{ "zones": [ {
    "target": "./client",
    "from": "./server",
    "except": [/types/]
} ] }

Let me know what you think. I know that #1662 might want to try to solve a similar issue, but I think it is not the same, but could still solve what @vladimiry wanted to achieve. I don't know his use case though.

Contributor guide