Skip to content

πŸ’£ Lints unhandled functions that might throw errors. For JavaScript/TypeScript eslint.

Notifications You must be signed in to change notification settings

Akronae/eslint-plugin-exception-handling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

74469aa Β· Nov 24, 2024

History

66 Commits
Oct 15, 2024
Jun 2, 2024
Oct 13, 2024
Nov 24, 2024
May 25, 2024
May 25, 2024
Jun 2, 2024
Sep 21, 2024
Sep 22, 2024
Nov 24, 2024
Nov 24, 2024
Jun 2, 2024
Nov 24, 2024

Repository files navigation

eslint-plugin-exception-handling

πŸ’£ Lints unhandled functions that might throw errors & ensure best practices. For JavaScript/TypeScript eslint.


image

no-unhandled might-throw use-error-cause
no-unhandled might-throw cause

Installation

yarn add -D eslint-plugin-exception-handling
npm i -D eslint-plugin-exception-handling
pnpm add -D eslint-plugin-exception-handling

Usage

Sample eslint.config.js:

For TypeScript:

// @ts-check

import eslint from "@eslint/js";
import tseslint from "typescript-eslint";
import { plugin as ex } from "eslint-plugin-exception-handling";

export default tseslint.config(
  eslint.configs.recommended,
  ...tseslint.configs.recommended,
  { plugins: { ex }, rules: { "ex/no-unhandled": "error" } }
);

For JavaScript:

import globals from "globals";
import pluginJs from "@eslint/js";
import { plugin as ex } from "eslint-plugin-exception-handling";

export default [
  { files: ["**/*.js"], languageOptions: { sourceType: "commonjs" } },
  { languageOptions: { globals: globals.browser } },
  pluginJs.configs.recommended,
  { plugins: { ex } },
  { rules: { "ex/no-unhandled": "error" } },
];

Limitations & Caveats

  • This plugin only checks for functions that might throw exceptions. It does not check for functions that might return a rejected promise.
  • Currently, only user-defined functions are checked. This means that built-in functions that might throw exceptions are not yet linted. I'm working on a feature for that, but it's quite a grind to list all the built-in functions that might throw exceptions. If you want to help feel free to open a PR.

Rules

Name            Description
might-throw Warns about function calls that might throw exceptions.
no-unhandled Warns about function calls that might throw exceptions and are not handled at all further up the stack.
use-error-cause On Error re-thrown, forces the use of cause property in order to preserve stack traces. See: Error: cause