1.0.1 • Published 1 year ago

@front-utils/linter v1.0.1

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

Front-utils/linter

The repository contains configuration files for setting up ESLint in the project.

Note: Only ftat eslint configutation

Installation

You can install the package as follows:

npm install @front-utils/linter --save-dev

# or

yarn add @front-utils/linter -D

# or

bun add @front-utils/linter --dev

Usage (ESM)

import {
    utils, // utilities
    configs // preconfigured configs
} from "@front-utils/linter";

create alias

import { utils } from "@front-utils/linter";
import importPlugin from 'eslint-plugin-import';

export const fullEslintAliases = [
    ...utils.createEslintAlias({ 
        name: 'pkg', 
        basePath: '.', 
        config: {
            utils: 'src/infrastructure/utils', // @alias: @pkg/utils -> src/infrastructure/utils
            models: 'src/data/models' // @alias: @pkg/models -> src/data/models
        } 
    }),
    ...utils.createEslintAlias({ name: 'api', basePath: '.', config: {} }),
];

const importPluginConfig = {
    plugins: {
        import: importPlugin,
    },
    settings: {
        'import/resolver': {
            alias: {
                map       : fullEslintAliases,
                extensions: ['.ts', '.tsx', '.json', '.js', 'jsx'],
            },
            ...
        },
    }
};

create eslint config

import { utils } from "@front-utils/linter";

/** 
The config.types parameter is an array that can contain the following keys:
 - babel: include babel settings
 - react: indicates whether React support is enabled.
 - test: indicates whether testing support is enabled.
 - ts: indicates whether TypeScript support is enabled.
*/
const eslintConfig = utils.createEslintConfig({
    types: ['ts', 'babel', 'react', 'test'],
    ...{
        ignores: [],
        files: []
    } /** any eslint rule */
}),
base rulesincluded plugins
with any config.types@eslint/js eslint-plugin-compat eslint-plugin-optimize-regex eslint-plugin-promise eslint-plugin-sonarjs eslint-plugin-filenames eslint-plugin-import eslint-plugin-jsx-a11y

add plugins with config.types

config.typesincluded plugins
testeslint-plugin-testing-library eslint-plugin-jest-dom
tstypescript-eslint
reacteslint-plugin-react-hooks eslint-plugin-react
babel@babel/eslint-parser

rewrite the rules in all plugins.

import { utils } from '@front-utils/linter';

export default [
    ...utils.createEslintConfig({
        ignores: ["**/*" ,"!src/**/*"]
    })
]; 
aliasis equal
standartutils.createEslintConfig()
testutils.createEslintConfig({types: 'test',})
tsutils.createEslintConfig({types: 'ts',})
reactutils.createEslintConfig({types: 'ts', 'react',})
monorepoutils.createEslintConfig({types: 'test', 'babel', 'ts', 'react',})

standart config

alias for utils.createEslintConfig()

npm install @front-utils/linter @eslint/js eslint-plugin-compat eslint-plugin-optimize-regex eslint-plugin-promise eslint-plugin-sonarjs eslint-plugin-filenames  eslint-plugin-import eslint-plugin-jsx-a11y --save-dev
// eslint.config.js
import {
    configs,
} from "@front-utils/linter";

export default configs.standart;

ts config

alias for utils.createEslintConfig({types: 'ts',})

npm install @front-utils/linter @eslint/js typescript-eslint eslint-plugin-compat eslint-plugin-optimize-regex eslint-plugin-promise eslint-plugin-sonarjs eslint-plugin-filenames  eslint-plugin-import eslint-plugin-jsx-a11y --save-dev
// eslint.config.js
import {
    configs,
} from "@front-utils/linter";

export default configs.ts;

react config

alias for utils.createEslintConfig({types: 'ts', 'react',})

npm install @front-utils/linter @eslint/js typescript-eslint eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-compat eslint-plugin-optimize-regex eslint-plugin-promise eslint-plugin-sonarjs eslint-plugin-filenames  eslint-plugin-import eslint-plugin-jsx-a11y globals --save-dev
// eslint.config.js
import {
    configs,
} from "@front-utils/linter";

export default configs.react;

test config

alias for utils.createEslintConfig({types: 'test',})

npm install @front-utils/linter @eslint/js eslint-plugin-testing-library eslint-plugin-jest-dom --save-dev
// eslint.config.js
import {
    configs,
} from "@front-utils/linter";

export default configs.test;

monorepo config

alias for utils.createEslintConfig({types: 'test', 'babel', 'ts', 'react',})

npm install @front-utils/linter @eslint/js typescript-eslint eslint-plugin-react eslint-plugin-react-hooks eslint-plugin-compat eslint-plugin-optimize-regex eslint-plugin-promise eslint-plugin-sonarjs eslint-plugin-filenames  eslint-plugin-import eslint-plugin-jsx-a11y eslint-plugin-testing-library eslint-plugin-jest-dom @babel/eslint-parser globals --save-dev
// eslint.config.js
import {
    configs,
} from "@front-utils/linter";

export default configs.monorepo;

configured config for use in a monorepo (expects the presence of tsconfig.json, babel.config.js files in the project root, and uses react, typescript technologies)

0.9.8

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago

0.9.9

1 year ago

0.9.4

1 year ago

0.9.3

1 year ago

0.9.6

1 year ago

0.9.0

1 year ago

0.9.2

1 year ago

0.9.1

1 year ago

0.8.1

1 year ago

0.8.0

1 year ago

0.8.3

1 year ago

0.8.2

1 year ago

0.6.3

1 year ago

0.6.2

1 year ago

0.7.0

1 year ago

0.6.1

1 year ago

0.6.0

1 year ago

0.5.4

2 years ago

0.5.3

2 years ago

0.5.6

2 years ago

0.5.5

2 years ago

0.5.2

2 years ago

0.5.1

2 years ago

0.5.0

2 years ago

0.4.0

2 years ago

0.3.0

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago