eslint-plugin-directory-mirror
v1.0.1
Published
An ESLint rule for mirroring directory structures.
Downloads
25
Readme
eslint-plugin-directory-mirror
An ESLint rule for mirroring directory structures.
Use cases:
- Ensure that every unit test file has a corresponding source file
- Ensure that every source file has a corresponding unit test file
- etc.
Installation
Execute the following command within your project's root directory:
npm i --save-dev eslint-plugin-directory-mirror
ESLint Configuration
Add directory-mirror
to the plugins
section of your .eslintrc
file:
{
plugins: ["directory-mirror"],
}
Plugin Configuration
There is only one rule within this plugin also named directory-mirror
.
This rule has one configuration option which you can use to specify the directories that should be mirrored. Let's use an example to understand the option:
{
rules: {
"directory-mirror/directory-mirror": [
"error",
{
"mirrors": [
{ forEach: { dir: "test", ext: ".test.ts", recursive: true }, require: { dir: "src", ext: ".ts" } },
{ forEach: { dir: "src", ext: ".ts", recursive: true }, require: { dir: "test", ext: ".test.ts" } },
],
},
],
},
}
The option has a mirrors
array with objects describing the mirrored directories.
Read the object like this: forEach
of these files require in the directory dir
a file with the extension ext
and the same name (without extension and including sub directory).
For the example above this means:
- For every test file with the extension
.test.ts
in thetest
folder there has to be a corresponding source file with the extension.ts
in thesrc
folder. - And for every source file with the extension
.ts
in thesrc
folder there has to be a corresponding test file with the extension.test.ts
in thetest
folder.