eslint-plugin-dynamic
Install
yarn add -D eslint eslint-plugin-dynamic
npm i -D eslint eslint-plugin-dynamic
How to use
Add this plugin to your .eslintrc
file
"extends": "plugin:dynamic/typescript+react+effector+import+prettier+next",
"plugins": ["dynamic"],
Construction typescript+react+effector+import+prettier+next
is dynamic.
Possible import modules typescript, ts, prettier, react, reactjs, import, imports, effector, effectorjs, babel, babeljs, a11y, next, nextjs, styled-components, sc, unicorn
Examples:
"extends": "plugin:dynamic/react+typescript",
"plugins": ["dynamic"]
"extends": ["plugin:dynamic/typescript+import"],
"plugins": ["dynamic"]
"extends": ["plugin:dynamic/import+prettier"],
"plugins": ["dynamic"]
modules
dependencies: @typescript-eslint/eslint-plugin@^4.28.3, @typescript-eslint/parser@^4.28.3
definitions:
ts
, typescript
conflicts:
babel
configuration:
{
"parser": "@typescript-eslint/parser",
"extends": [
"plugin:@typescript-eslint/recommended"
],
"plugins": [
"@typescript-eslint"
],
"rules": {
"no-empty-interface": "off",
"@typescript-eslint/no-empty-interface": "off",
"no-use-before-define": "off",
"@typescript-eslint/no-use-before-define": "error",
"no-unused-vars": "off",
"@typescript-eslint/no-unused-vars": "error",
"@typescript-eslint/explicit-module-boundary-types": "off"
}
}
dependencies: prettier@^2.4.1, eslint-plugin-prettier@^4.0.0, eslint-config-prettier@^8.3.0
definitions:
prettier
configuration:
{
"extends": [
"plugin:prettier/recommended"
],
"plugins": [
"prettier"
],
"rules": {
"prettier/prettier": [
"error",
{
"endOfLine": "auto",
"printWidth": 80,
"tabWidth": 2,
"trailingComma": "all",
"semi": true
}
]
}
}
dependencies: eslint-plugin-react@^7.25.1, eslint-plugin-react-hooks@^4.2.0
definitions:
react
, reactjs
configuration:
{
"settings": {
"react": {
"version": "detect"
}
},
"parserOptions": {
"ecmaFeatures": {
"jsx": true
}
},
"extends": [
"plugin:react/recommended",
"plugin:react-hooks/recommended"
],
"plugins": [
"react",
"react-hooks"
],
"rules": {
"react/display-name": "off",
"react/prop-types": "off",
"react-hooks/rules-of-hooks": "error"
}
}
dependencies: eslint-plugin-import@^2.24.2
definitions:
import
, imports
configuration:
{
"settings": {
"import/resolver": {
"alias": {
"extensions": [
".js",
".jsx",
".json"
]
}
}
},
"extends": [
"plugin:import/errors",
"plugin:import/warnings"
],
"plugins": [
"import"
],
"rules": {
"import/order": [
"error",
{
"groups": [
[
"external"
],
[
"builtin"
],
[
"internal"
],
[
"parent"
],
[
"sibling"
],
[
"object"
],
[
"index"
]
],
"newlines-between": "always",
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
]
}
}
relations:
{
"settings": {
"import/resolver": {
"alias": {
"extensions": [
".ts",
".tsx",
".js",
".jsx",
".json"
]
}
}
},
"extends": [
"plugin:import/typescript"
],
"plugins": [],
"rules": {}
}
dependencies: eslint-plugin-effector@^0.2.0
definitions:
effector
, effectorjs
configuration:
{
"extends": [
"plugin:effector/recommended"
],
"plugins": [
"effector"
],
"rules": {}
}
dependencies: @babel/eslint-parser@^7.15.7
definitions:
babel
, babeljs
conflicts:
typescript
configuration:
{
"parser": "@babel/eslint-parser",
"parserOptions": {
"sourceType": "module",
"allowImportExportEverywhere": false,
"ecmaFeatures": {
"globalReturn": false
}
},
"extends": [],
"plugins": [],
"rules": {}
}
dependencies: eslint-plugin-jsx-a11y@^6.4.1
definitions:
a11y
configuration:
{
"extends": [
"plugin:jsx-a11y/recommended"
],
"plugins": [
"jsx-a11y"
],
"rules": {}
}
dependencies: eslint-config-next@^11.1.2
definitions:
next
, nextjs
configuration:
{
"extends": [
"next/core-web-vitals"
],
"plugins": [],
"rules": {}
}
dependencies: eslint-plugin-better-styled-components@^1.1.2
definitions:
sc
, styled-components
configuration:
{
"extends": [],
"plugins": [
"better-styled-components"
],
"rules": {
"better-styled-components/sort-declarations-alphabetically": 2
}
}
dependencies: eslint-plugin-unicorn@^36.0.0
definitions:
unicorn
configuration:
{
"extends": [
"plugin:unicorn/recommended"
],
"plugins": [
"unicorn"
],
"rules": {}
}