1.0.1 • Published 3 years ago
eslint-plugin-directory-mirror v1.0.1
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-mirrorESLint 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.tsin thetestfolder there has to be a corresponding source file with the extension.tsin thesrcfolder. - And for every source file with the extension
.tsin thesrcfolder there has to be a corresponding test file with the extension.test.tsin thetestfolder.