@egjiri/eslint-plugin
v1.0.0
Published
ESLint configuration for my personal code style
Readme

Personal ESLint configuration with code style rules and best practices.
Installation
From NPM (Recommended)
pnpm add -D @egjiri/eslint-plugin eslintOr add to your project's package.json:
{
"devDependencies": {
"@egjiri/eslint-plugin": "^1.0.0",
"eslint": "^9.0.0"
}
}Local Development (Link)
For local development or when working on the plugin itself:
{
"devDependencies": {
"@egjiri/eslint-plugin": "link:../eslint-plugin",
"eslint": "^9.0.0"
}
}Then run pnpm install.
Note: Adjust the path
../eslint-pluginto match the relative path from your project to this plugin directory.
Dependencies
Required (peer dependency):
eslint ^9.0.0- Must be installed in your project
The plugin bundles these dependencies internally:
@eslint/js- ESLint's recommended rules@stylistic/eslint-plugin- Code formatting ruleseslint-plugin-import- Import/export syntax validation and ordering
You don't need to install these separately.
Usage
Basic Usage
import egjiri from '@egjiri/eslint-plugin';
export default egjiri.configs.recommended;This includes:
@eslint/jsrecommended rules@stylistic/eslint-pluginformatting rules (see below)
Advanced Configuration
import egjiri from '@egjiri/eslint-plugin';
import globals from 'globals';
export default [
...egjiri.configs.recommended,
{
files: ['**/*.js'],
languageOptions: {
globals: {
...globals.node,
},
},
plugins: {
...egjiri.plugins,
// Add your own plugins here
},
rules: {
// Override or add rules
'stylistic/indent': ['error', 4], // Use 4 spaces instead of 2
'stylistic/quotes': ['error', 'double'], // Use double quotes
// Customize import ordering with project-specific pathGroups
'import/order': ['error', {
...egjiri.rules['import/order'][1],
pathGroups: [{ pattern: '$alias/**', group: 'internal' }],
}],
},
},
];Rules Included
This plugin's recommended config includes:
From @eslint/js
All rules from @eslint/js recommended config
Additional Built-in ESLint Rules
curly: Require braces for all control statements
Import Plugin Rules
import/order: Enforce consistent import ordering (alphabetized, grouped by type)
@stylistic Rules
stylistic/array-bracket-spacing: No spaces inside array bracketsstylistic/arrow-parens: Parentheses around arrow function parameters only when neededstylistic/brace-style: One true brace style (1tbs)stylistic/comma-dangle: Trailing commas on multilinestylistic/comma-spacing: Space after commas, not beforestylistic/indent: 2-space indentation with switch case indentstylistic/key-spacing: Space after colonstylistic/keyword-spacing: Consistent spacing around keywordsstylistic/member-delimiter-style: TypeScript interface/type member delimitersstylistic/no-multi-spaces: No multiple consecutive spacesstylistic/no-multiple-empty-lines: Max one empty linestylistic/object-curly-spacing: Spaces inside object braces (with exceptions)stylistic/quote-props: Quote object properties only when neededstylistic/quotes: Single quotes, allow double to avoid escapesstylistic/semi-spacing: Space after semicolons, not beforestylistic/semi: Require semicolonsstylistic/space-in-parens: No spaces inside parenthesesstylistic/space-infix-ops: Spaces around operators
Release
This project uses automated publishing through GitHub Actions. Publishing happens automatically when you create and push a version tag.
How to Release:
Update the version in
package.json:# For a patch release (0.0.1 → 0.0.2) pnpm version patch -m "Upgrade version to %s" # For a minor release (0.0.1 → 0.1.0) pnpm version minor -m "Upgrade version to %s" # For a major release (0.0.1 → 1.0.0) pnpm version major -m "Upgrade version to %s"Push the tag to trigger the release workflow:
git push origin main --tags
What happens automatically:
- 🏷️ GitHub Release is created with the tag name
- 📦 Published to NPM with public access
- ✅ No manual intervention required
