Found code that was mixing usages of index imports and directory imports.
For example with the following npm package file structure:
- src
- awesome
- index.ts
- other.ts
Some imports within the library would use import './awesome'; while others used import './awesome/index';.
In es6 modules world those resolve to two different absolute paths, ie C:/lib/src/awesome vs C:/lib/src/awesome/index so tooling that may not be aware of commonjs file resolution may treat them as different symbols. This is not a concern in modern versions of tooling that I have seen but enforcing the consistency seems useful anyway for readability.
Justification
Found code that was mixing usages of index imports and directory imports.
For example with the following npm package file structure:
Some imports within the library would use
import './awesome';
while others usedimport './awesome/index';
.In es6 modules world those resolve to two different absolute paths, ie
C:/lib/src/awesome
vsC:/lib/src/awesome/index
so tooling that may not be aware of commonjs file resolution may treat them as different symbols. This is not a concern in modern versions of tooling that I have seen but enforcing the consistency seems useful anyway for readability.This PR copies the exisiting airbnb rule for import/no-useless-path-segments and adds the noUselessIndex configuration.