Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A shareable ESLint config for writing better asynchronous code

License

NotificationsYou must be signed in to change notification settings

Maximization/eslint-config-async

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A shareable ESLint config for writing better asynchronous code.

Find an overview of what rules are enabled, and why, in this article:

📚14 Linting Rules To Help You Write Asynchronous Code in JavaScript

Table of contents

Requirements

  • ESLint v9
  • Node.js ^18.18.0, ^20.9.0, or >=21.1.0 (set by ESLint v9)

If you're using ESLint v8, you should use v2 of this library.Installation & usage for eslint-config-async v2.

Installation & usage

Non-TypeScript users

Install this package and ESLint:

npm install --save-dev eslint eslint-config-async

In youreslint.config.js configuration file:

constasyncConfig=require("eslint-config-async");module.exports=[  ...asyncConfig.base,// enable base rules  ...asyncConfig.node,// enable Node.js specific rules (recommended)];

TypeScript users

Install this package and its peer dependencies:

npm install --save-dev eslint eslint-config-async typescript typescript-eslint

In youreslint.config.js configuration file:

consttseslint=require("typescript-eslint");constasyncConfig=require("eslint-config-async");module.exports=[// One of tseslint configs must be enabled// Either the base configtseslint.configs.base,// adds the parser only, without any rules// or  ...tseslint.configs.recommended,// includes base + a list of recommended rules// ..and others  ...asyncConfig.base,// enable base rules  ...asyncConfig.node,// enable Node.js specific rules (recommended)  ...asyncConfig.typescript,// enable TypeScript specific rules{files:["*.ts"],// tell ESLint to include TypeScript fileslanguageOptions:{parserOptions:{projectService:true,tsconfigRootDir:__dirname,},},},];

Migrating from v2 to v3

Version 3 upgrades ESLint to v9. ESLint uses aflat configuration file..eslintrc.* has been deprecated and you should rename it toeslint.config.js (or .cjs, .mjs):

- .eslintrc+ eslint.config.js

In youreslint.config.js file, make the following changes:

- module.exports = {-   plugins: [-     'eslint-plugin-node'-   ],-   extends: [-     'async',-     'async/node'-   ],- };+ const asyncConfig = require("eslint-config-async");++ module.exports = [+   ...asyncConfig.base, // enable base rules+   ...asyncConfig.node, // enable Node.js specific rules (recommended)+ ];

eslint-plugin-node is no longer maintained and has been replaced with its fork,eslint-plugin-n.eslint-plugin-n is not a peer dependency and is included with this library, therefore you no longer need to install it separately:

npm remove --save-dev eslint-plugin-node

For TypeScript users, change the contents ofeslint.config.js file as follows:

- module.exports = {-   plugins: [-     'eslint-plugin-node',-     '@typescript-eslint'-   ],-   extends: [-     'async',-     'async/node',-     'async/typescript'-   ],-   parser: '@typescript-eslint/parser',-   parserOptions: {-     tsconfigRootDir: __dirname,-     project: ['./tsconfig.json'],-   }- };+ const tseslint = require("typescript-eslint");+ const asyncConfig = require("eslint-config-async");++ module.exports = [+   tseslint.configs.base,+   ...asyncConfig.base, // enable base rules+   ...asyncConfig.node, // enable Node.js specific rules (recommended)+   ...asyncConfig.typescript, // enable TypeScript specific rules+   {+     files: ["*.ts"], // tell ESLint to include TypeScript files+     languageOptions: {+       parserOptions: {+         projectService: true,+         tsconfigRootDir: __dirname,+       },+     },+   },+ ];

Replace@typescript-eslint/parser and@typescript-eslint/eslint-plugin withtypescript-eslint:

npm remove @typescript-eslint/parser @typescript-eslint/eslint-plugin&& npm install --save-dev typescript-eslint

Migrating from v1 to v2

Version 2 adds TypeScript specific rules and exports multiple configs, namely:

  • Base rules (eslint-config-async)
  • Node.js specific rules (eslint-config-async/node)
  • TypeScript rules (eslint-config-async/typescript)

In version 1, the base and Node.js specific rules were included by default. In version 2, you need to explicitly add the Node.js rules:

module.exports = {  extends: [-   'eslint-config-async'+   'eslint-config-async',+   'eslint-config-async/node'  ],}

Or using the short syntax:

module.exports = {  extends: [-   'eslint-config-async'+   'async',+   'async/node'  ],}

If you added the TypeScript specific rules manually in your project, you can remove them and replace them with this config:

module.exports = {  extends: [    'async',    'async/node',+   'async/typescript'  ],  rules: {-   "@typescript-eslint/await-thenable": "error",-   "@typescript-eslint/no-floating-promises": "error",-   "@typescript-eslint/no-misused-promises": "error",-   "@typescript-eslint/promise-function-async": "error",  }}

About

A shareable ESLint config for writing better asynchronous code

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors3

  •  
  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp