Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ekwoka/eslint-plugin-filename-export
ESLint plugin to ensure filenames match a named export
https://github.com/ekwoka/eslint-plugin-filename-export
Last synced: 27 days ago
JSON representation
ESLint plugin to ensure filenames match a named export
- Host: GitHub
- URL: https://github.com/ekwoka/eslint-plugin-filename-export
- Owner: ekwoka
- Created: 2022-09-24T08:29:16.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-01T03:08:38.000Z (8 months ago)
- Last Synced: 2024-05-02T01:12:38.721Z (8 months ago)
- Language: TypeScript
- Size: 267 KB
- Stars: 13
- Watchers: 1
- Forks: 2
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
[](https://www.npmjs.com/package/eslint-plugin-filename-export)
[](https://bundlephobia.com/package/eslint-plugin-filename-export)# eslint-plugin-filename-export
This plugin enforces that the filename matches to a named export or default export when a name is provided. This can be set to being case sensitive or case insensitive.
## Installation
Install with your package manager of choice:
```bash
pnpm i -D eslint-plugin-filename-export
```Add to your ESLint config:
```json
{
"plugins": ["eslint-plugin-filename-export"],
"rules": {
"filename-export/match-named-export": "error",
"filename-export/match-default-export": "error"
}
}
```## Rules
- `filename-export/match-named-export` - Enforces that the filename matches to a named export.
- `filename-export/match-default-export` - Enforces that filenames match the name of the default export.These rules ignore index files, test/spec files, and files that have no relevant exports by default. Additionally, files with a default export will be ignored by the `match-named-export` rule.
If you want to add additional filename exemptions, use the ESLint's builting filename overrides.
## Options
Both of these rules have the following available options:
- `casing`:
- `strict`: Filenames much match in case to the exports
- `loose`: Filenames do not need to match case (`default`)- `stripextra`:
- `true`: Filenames will be stripped of any non-alphanumeric characters (to allow filenames like `great_function.ts` to match `greatfunction`)
- `false`: Filenames will not be stripped of any extra characters (`default`)These can be passed as a second item in an array to the rule as follows
```json
"filename-export/match-named-export": [
"error",
{
"casing": "strict",
"sripextra": true
}
]
```## Roadmap
This plugin is mainly being produced for personal use. If you are interested in using it, but need additional features, please open an issue and I will consider adding them.
Pull requests will also be evaluated and merged as appropriate.