https://github.com/lexborisoff/eslint-plugin
ESLint Plugin
https://github.com/lexborisoff/eslint-plugin
Last synced: 5 months ago
JSON representation
ESLint Plugin
- Host: GitHub
- URL: https://github.com/lexborisoff/eslint-plugin
- Owner: LexBorisoff
- License: isc
- Created: 2024-12-03T02:14:48.000Z (over 1 year ago)
- Default Branch: dev
- Last Pushed: 2025-07-02T00:22:41.000Z (12 months ago)
- Last Synced: 2025-10-10T08:25:58.088Z (9 months ago)
- Language: JavaScript
- Homepage:
- Size: 200 KB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: license
Awesome Lists containing this project
README
# `@lexjs/eslint-plugin`



- [Installation](#installation)
- [Usage](#usage-flat-config)
- [Configs](#configs)
- [Recommended](#recommended)
- [TypeScript](#typescript)
- [Utils](#utils)
- [useIgnoreFile](#useignorefile)
## Installation
```bash
npm install @lexjs/eslint-plugin --save-dev
```
```bash
pnpm add @lexjs/eslint-plugin --save-dev
```
```bash
yarn add @lexjs/eslint-plugin --dev
```
## Usage (Flat config)
```javascript
// eslint.config.js
import lexjs from '@lexjs/eslint-plugin';
export default [
// other configs
...lexjs.configs.recommended,
...lexjs.configs.typescript,
// other configs
];
```
## Configs
### Recommended
_**Extends Configs**_
- [ESLint](https://www.npmjs.com/package/@eslint/js)
- Recommended
- [Prettier](https://www.npmjs.com/package/eslint-plugin-prettier)
- Recommended
- [Import Plugin](https://www.npmjs.com/package/eslint-plugin-import)
- Recommended
_**Rules**_
```javascript
{
eqeqeq: ['error', 'smart'],
'prefer-const': 'warn',
'object-shorthand': 'error',
'consistent-return': 'error',
'no-else-return': ['error', { allowElseIf: false }],
'lines-between-class-members': ['error', 'always'],
'no-console': 'warn',
}
```
_**Import Rules**_
```javascript
{
'import/no-cycle': 'error',
'import/no-duplicates': 'error',
'import/first': 'error',
'import/newline-after-import': 'error',
'import/no-named-as-default-member': 'off',
'padding-line-between-statements': [
'error',
{ blankLine: 'always', prev: '*', next: 'export' },
{ blankLine: 'always', prev: 'export', next: '*' },
{ blankLine: 'any', prev: 'export', next: 'export' },
],
'import/order': [
'error',
{
groups: [
'builtin',
'external',
'internal',
'parent',
'sibling',
'index',
'object',
'type',
],
'newlines-between': 'always',
alphabetize: {
order: 'asc',
caseInsensitive: true,
},
},
],
'unused-imports/no-unused-imports': 'error',
}
```
### TypeScript
_**Extends Configs**_
- [TypeScript ESLint](https://www.npmjs.com/package/typescript-eslint)
- Recommended
- ESLint Recommended
- [Import Plugin](https://www.npmjs.com/package/eslint-plugin-import)
- TypeScript
**_Files_**
```javascript
'**/*.{ts,tsx}'
```
_**Rules**_
```javascript
{
'no-shadow': 'off',
'@typescript-eslint/no-shadow': 'error',
'no-use-before-define': 'off',
'@typescript-eslint/no-use-before-define': 'error',
'@typescript-eslint/no-empty-object-type': 'error',
'@typescript-eslint/interface-name-prefix': 'off',
'@typescript-eslint/explicit-module-boundary-types': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/explicit-function-return-type': [
'error',
{
allowExpressions: true,
},
],
'require-await': 'off',
'@typescript-eslint/require-await': 'error',
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': [
'warn',
{
ignoreRestSiblings: true,
},
],
'@typescript-eslint/naming-convention': [
'error',
{
selector: 'variable',
format: ['camelCase', 'PascalCase', 'UPPER_CASE'],
leadingUnderscore: 'allowSingleOrDouble',
trailingUnderscore: 'forbid',
},
{
selector: 'enumMember',
format: ['PascalCase', 'UPPER_CASE'],
},
],
}
```
_**Import Settings**_
```javascript
{
'import/resolver': {
typescript: {
alwaysTryTypes: true,
},
},
}
```
## Utils
### `useIgnoreFile`
Configure ESLint to ignore certain files and directories by including patterns from a `.gitignore` or any other file with gitignore-style patterns.
**_Type_**
```javascript
function useIgnoreFile(file: string, meta: ImportMeta): FlatConfig;
```
**_Usage_**
```javascript
// eslint.config.js
import { useIgnoreFile } from '@lexjs/eslint-plugin/utils';
export default [
useIgnoreFile('.gitignore', import.meta),
// other configs
];
```
> File name must be resolved relative to the ESLint config file.