Skip to content

antfu/eslint-plugin-command

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Mar 21, 2025
73b8eae · Mar 21, 2025
Apr 25, 2024
Apr 24, 2024
Mar 21, 2025
Mar 21, 2025
May 3, 2024
Apr 24, 2024
Apr 24, 2024
Apr 24, 2024
Feb 15, 2025
Feb 15, 2025
Jun 15, 2024
Jun 15, 2024
May 3, 2024
Mar 21, 2025
Mar 21, 2025
Mar 21, 2025
Apr 24, 2024
Apr 24, 2024

Repository files navigation

eslint-plugin-command

npm version npm downloads

Documentations

Comment-as-command for one-off codemod with ESLint.

eslint-plugin-command-half.mov

Introduction

ESLint Plugin Command is a special kind of ESLint plugin, that by default, does nothing. Instead of checking for code quality, it serves as a micro-codemod tool triggers by special comments on-demand, resuse the infrastructure of ESLint.

For example, one of the built-in commands, /// to-function allows you to convert a single arrow function expression to a function declaration.

/// to-function
const foo = async <T>(msg: T): void => {
  console.log(msg)
}

Will be transformed to this when you hit save with your editor or run eslint . --fix. After executing the command, the comment will also be removed along with the transformation:

async function foo<T>(msg: T): void {
  console.log(msg)
}

One more example that /// to-promise-all converts a sequence of await expressions to await Promise.all():

/// to-promise-all
const foo = await bar().then
const { get } = await import('lodash-es')

Will be transformed to:

const [
  foo,
  { get },
] = await Promise.all([
  bar(),
  import('lodash-es'),
] as const)

Refer to the documentation for more details.

Sponsors

License

MIT License © 2024-PRESENT Anthony Fu