import-js/eslint-plugin-import

no-restricted-paths improve `except`

Open

#1,701 opened on Mar 26, 2020

 (2 comments) (9 reactions) (0 assignees)JavaScript (1,548 forks)batch import
enhancementhelp wanted

Repository metrics

Stars
 (5,940 stars)
PR merge metrics
 (PR metrics pending)

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