Skip to main content

Configuration

ESLint Plugin Hub supports both flat and legacy configurations. Choose the appropriate method based on your ESLint version and project setup.

Flat Configuration (ESLint >=8.56.0)

For projects using ESLint 8.56.0 or later, you can use the new flat config format.

For ES Module (eslint.config.mjs)

import hub from '@mindfiredigital/eslint-plugin-hub';
import globals from 'globals';

export default [
{
languageOptions: {
globals: globals.builtin,
parserOptions: {
ecmaVersion: 2022,
sourceType: 'module',
},
},
plugins: {
hub: hub,
},
rules: {
'hub/vars-camelcase': 'error',
'hub/class-pascalcase': 'error',
'hub/file-kebabcase': 'error',
'hub/function-camelcase': 'error',
'hub/function-descriptive': 'warn',
},
},
];

For CommonJS (eslint.config.js)

const hub = require('@mindfiredigital/eslint-plugin-hub');
const globals = require('globals');

module.exports = [
{
languageOptions: {
globals: globals.builtin,
parserOptions: {
ecmaVersion: 2022,
sourceType: 'module',
},
},
plugins: {
hub: hub,
},
rules: {
'hub/vars-camelcase': 'error',
'hub/class-pascalcase': 'error',
'hub/file-kebabcase': 'error',
'hub/function-camelcase': 'error',
'hub/function-descriptive': 'warn',
},
},
];

Legacy Configuration

For older ESLint versions or projects using the legacy configuration format, you can use .eslintrc.* files or the eslintrc field in package.json.

For .eslintrc.json

{
"env": {
"es2024": true
},
"parserOptions": {
"ecmaVersion": "latest",
"sourceType": "module"
},
"plugins": ["@mindfiredigital/eslint-plugin-hub"],
"rules": {
"@mindfiredigital/hub/file-kebabcase": "error",
"@mindfiredigital/hub/function-camelcase": "error",
"@mindfiredigital/hub/vars-camelcase": "error"
}
}

For ES Module .eslintrc.js

export default {
env: {
browser: true,
es2024: true,
},
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: ['@mindfiredigital/eslint-plugin-hub'],
rules: {
'@mindfiredigital/hub/file-kebabcase': 'error',
'@mindfiredigital/hub/function-camelcase': 'error',
'@mindfiredigital/hub/vars-camelcase': 'error',
},
};

For CommonJS .eslintrc.cjs

module.exports = {
env: {
browser: true,
es2024: true,
},
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: ['@mindfiredigital/eslint-plugin-hub'],
rules: {
'@mindfiredigital/hub/file-kebabcase': 'error',
'@mindfiredigital/hub/function-camelcase': 'error',
'@mindfiredigital/hub/vars-camelcase': 'error',
},
};