Skip to content

maintainedjs/eslint-plugin-filename-rules

 
 

Repository files navigation

eslint-plugin-filename-rules

Adds an ESLint rule to enforce filename conventions for linted files. Allows different options for different file extensions. Supports custom regular expressions.

NPM Version NPM Downloads License: MIT

Installation

$ npm install -D @maintained/eslint-plugin-filename-rules

Old style config

Add it to your .eslintrc.js:

module.exports = {
  plugins: ["@maintained/filename-rules"],
  rules: {
    "@maintained/filename-rules/match": [2, "camelcase"],
  },
};

Flat config

import { plugin as filenameRules } from '@maintained/eslint-plugin-filename-rules';

{
  plugins: {
    'filename-rules': filenameRules,
  },
  rules: {
    'filename-rules/match': [2, 'camelcase']
  }
}

Plugin Options

The following built-in values are supported: pascalcase/PascalCase, camelcase/camelCase, snakecase/snake_case, kebabcase/kebab-case. You can also provide your own regex:

...
'filename-rules/match': [2, /^([a-z]+-)*[a-z]+(?:\..*)?$/],
...

You can also specify different options for different file extensions. In this case the plugin will only check files with extensions you explicitly provided:

...
'filename-rules/match': [2, { '.js': 'camelCase', '.ts': /^([a-z]+-)*[a-z]+(?:\..*)?$/ }],
...

You can use the includePath: true option to have the pattern matched against the full file path (instead of only the file basename):

...
'filename-rules/match': [2, { includePath: true, pattern: /^([a-z]+-)*[a-z]+(?:\..*)?$/ }],
...

The inverse rule not-match checks that the files do NOT match the given pattern. Supports all the same options:

...
'filename-rules/not-match': [2, 'camelCase'],
...

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • TypeScript 99.8%
  • JavaScript 0.2%