Skip to content

ESLint rules for consistent filename and folder. Allows you to enforce a consistent naming pattern for the filename and folder.

License

Notifications You must be signed in to change notification settings

dukeluo/eslint-plugin-check-file

Folders and files

NameName
Last commit message
Last commit date

Latest commit

59d9844 · Apr 13, 2025
Feb 16, 2025
Jan 7, 2025
Jan 31, 2025
Feb 16, 2025
Apr 13, 2025
Jan 31, 2025
Sep 7, 2022
Dec 12, 2021
Jul 19, 2023
Jul 19, 2023
Dec 7, 2024
Apr 13, 2025
Apr 13, 2025
Dec 19, 2021
Apr 13, 2025
Dec 7, 2024
Apr 13, 2025
Apr 13, 2025
Apr 13, 2025
Apr 16, 2024
Apr 13, 2025

Repository files navigation

eslint-plugin-check-file

NPM Version NPM Downloads NPM License Test Workflow Status Test Coverage Follow Author on X

An ESLint plugin that enforces consistent naming conventions for files and folders in your project. It helps maintain a clean and organized codebase by allowing you to define and enforce specific patterns for filenames and directory structures.

Installation

You'll first need to install ESLint:

npm i eslint --save-dev

Next, install eslint-plugin-check-file:

npm install eslint-plugin-check-file --save-dev

Usage

This plugin supports ESLint's flat configuration. Here's a complete example:

import checkFile from 'eslint-plugin-check-file';

export default [
  {
    // optional: add this processor to files which not processed by other processors but still require linting
    files: ['**/*.yaml', '**/*.webp'],
    processor: 'check-file/eslint-processor-check-file',
  },
  {
    files: ['src/**/*.*'],
    plugins: {
      'check-file': checkFile,
    },
    rules: {
      'check-file/no-index': 'error',
      'check-file/filename-blocklist': [
        'error',
        {
          '**/*.model.ts': '*.models.ts',
          '**/*.util.ts': '*.utils.ts',
        },
      ],
      'check-file/folder-match-with-fex': [
        'error',
        {
          '*.test.{js,jsx,ts,tsx}': '**/__tests__/',
          '*.styled.{jsx,tsx}': '**/components/',
        },
      ],
      'check-file/filename-naming-convention': [
        'error',
        {
          '**/*.{jsx,tsx}': 'PASCAL_CASE',
          '**/*.{js,ts}': 'CAMEL_CASE',
        },
      ],
      'check-file/folder-naming-convention': [
        'error',
        {
          'src/components/*/': 'PASCAL_CASE',
          'src/!(components)/**/!(__tests__)/': 'CAMEL_CASE',
        },
      ],
    },
  },
];

Supported Rules

Version Compatibility

Version 3.x and above only support ESLint's flat configuration. For legacy configuration support, please use version 2.x.

Support

If you find this plugin helpful, consider supporting the project:

GitHub Sponsors

Ko-fi