assert-modules-support-case-insensitive-fs
Assert that JS and TS modules support case-insensitive file systems.
Install
Requires node@14
or higher:
npm install assert-modules-support-case-insensitive-fs --save-dev
Usage
This package takes a list of paths, and checks all directories and all subdirectories
(at all nesting levels) along those paths.
Checking one directory consists in searching in this directory for two JS
(or TS, or .vue
, or .cjs
, or .mjs
, or .json
) modules whose names differ only in case.
If there are such modules, the package throws an exception specifying these modules,
because in a case-insensitive file system, such modules will not be distinguished
(without specifying extensions).
Examples of directories throwing an exception:
foo/
├── bar.js
└── Bar.js
foo/
├── bar.js
└── baR.ts
foo/
├── Bar/
└── bar.cjs
foo/
├── BAR.jsx
└── Bar.tsx
foo/
├── BAR.json
└── bAr.mjs
Examples of directories passing validation (not throwing an exception):
foo/
├── Bar.jsx
└── Bar.tsx
foo/
├── bar.js
├── bar.ts
├── bar.mjs
└── bar.json
foo/
├── Bar/
├── Bar.vue
└── Bar.tsx
foo/
├── bar.js
└── Bar.css
CLI
Assert that JS and TS modules in directory src
and all it subdirectories support
case-insensitive file systems:
npx assert-modules-support-case-insensitive-fs src
Assert modules in directories src
and bin
:
npx assert-modules-support-case-insensitive-fs src bin
JavaScript/TypeScript API
import assertModulesSupportCaseInsensitiveFS from 'assert-modules-support-case-insensitive-fs';
import {assertModulesSupportCaseInsensitiveFS} from 'assert-modules-support-case-insensitive-fs';
assertModulesSupportCaseInsensitiveFS(['src', 'tests']);
License
MIT