ESLint Plugin: File Export Name
This ESLint plugin ensures that the default export name matches the file name according to specified case styles and patterns.
Installation
npm install eslint-plugin-file-export-name --save-dev
yarn add -D eslint-plugin-file-export-name
pnpm add -D eslint-plugin-file-export-name
Usage
Add the plugin to your .eslintrc
configuration file:
{
"plugins": ["file-export-name"],
"rules": {
"file-export-name/match-file-export-name": "error"
}
}
Rule: match-file-export-name
This rule verifies that the default export name matches the file name according to the specified configuration.
Options
The rule accepts an object or an array of objects with the following properties:
cases
: An array of allowed case styles ("pascal"
, "camel"
, "kebab"
, "snake"
).
pattern
: A string representing a regular expression to match the export name.
ignore
: An array of file patterns to ignore.
extensions
: An array of file extensions to apply the rule to.
Default Configuration
{
"cases": ["pascal", "camel"],
"extensions": [".jsx", ".tsx", ".js", ".ts"],
"ignore": ["<text>", "<input>"],
"pattern": null
}
Examples
Basic configuration
{
"rules": {
"file-export-name/match-file-export-name": ["error", {
"cases": ["pascal", "camel"],
"pattern": "^My.*$",
"ignore": ["utils/*.js"],
"extensions": [".jsx", ".tsx"]
}]
}
}
// or you can use just in one line
{
"rules": {
"file-export-name/match-file-export-name": "error"
}
}
Multiple configurations
{
"rules": {
"file-export-name/match-file-export-name": ["error", [
{
"cases": ["pascal"],
"extensions": [".jsx", ".tsx"]
},
{
"cases": ["camel"],
"extensions": [".js", ".ts"]
}
]]
}
}
Features
- Supports multiple case styles: PascalCase, camelCase, kebab-case, and snake_case
- Custom regex pattern matching for export names
- Ability to ignore specific files or patterns
- Configure different rules for different file extensions
- Automatically ignores
index
files