eca
eslint-config-async
npm i eslint-config-async
eca

eslint-config-async

A shareable ESLint config for writing better asynchronous code

by Maxim Orlov

2.0.1 (see all)License:MITTypeScript:Not Found
npm i eslint-config-async
Readme

eslint-config-async

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

Installation & usage

Base rules

Install this package and ESLint:

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

In your .eslintrc configuration file:

module.exports = {
  extends: [
    'async'
  ],
};

Install this package and its peer dependencies:

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

In your .eslintrc configuration file:

module.exports = {
  plugins: [
    'eslint-plugin-node'
  ],
  extends: [
    'async',
    'async/node'
  ],
};

Install this package and its peer dependencies:

npm install --save-dev eslint eslint-config-async eslint-plugin-node typescript @typescript-eslint/parser @typescript-eslint/eslint-plugin

In your .eslintrc configuration file:

module.exports = {
  plugins: [
    'eslint-plugin-node',
    '@typescript-eslint'
  ],
  extends: [
    'async',
    'async/node',
    'async/typescript'
  ],
  parser: '@typescript-eslint/parser',
  parserOptions: {
    tsconfigRootDir: __dirname,
    project: ['./tsconfig.json'],
  }
};

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",
  }
}

Downloads/wk

440

GitHub Stars

10

LAST COMMIT

8mos ago

MAINTAINERS

1

CONTRIBUTORS

0

OPEN ISSUES

1

OPEN PRs

0
VersionTagPublished
2.0.1
latest
4mos ago
No alternatives found
No dependencies found

Rate & Review

100
No reviews found
Be the first to rate