Skip to content

Utilities for ESLint rule fixers and suggestions. πŸ§‘β€πŸ”§

License

Notifications You must be signed in to change notification settings

JoshuaKGoldberg/eslint-fix-utils

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

ESLint Fix Utils

Utilities for ESLint rule fixers and suggestions. πŸ§‘β€πŸ”§

πŸ‘ͺ All Contributors: 2 🀝 Code of Conduct: Kept πŸ§ͺ Coverage πŸ“ License: MIT πŸ“¦ npm version πŸ’ͺ TypeScript: Strict

Usage

If you're working on an ESLint plugin, install this as a dependency:

npm i eslint-fix-utils

You'll then be able to use any of its exported utilities in your rules.

Fixer APIs

fixRemoveArrayElement

Version of removeArrayElement that can be passed directly as a fix property.

import { fixRemoveArrayElement } from "eslint-fix-utils";

// ...

export function report(node: ESTree.ArrayExpression) {
	context.report({
		fix: fixRemoveArrayElement(context, node, node.elements.length - 1),
		messageId,
		node,
	});
}

fixRemoveObjectProperty

Version of removeObjectProperty that can be passed directly as a fix property.

import { fixRemoveObjectProperty } from "eslint-fix-utils";

// ...

export function report(node: ESTree.ArrayExpression) {
	context.report({
		fix: fixRemoveObjectProperty(context, node, node.elements.length - 1),
		messageId,
		node,
	});
}

Full APIs

removeArrayElement

Removes an element from an array expression, along with any commas that are no longer necessary.

Parameters:

  1. context
  2. fixer
  3. elementOrIndex: the child expression, spread element, or a numeric index of the child
  4. parentOrElements: the array expression node, or its .elements array
import { removeArrayElement } from "eslint-fix-utils";

// ...

export function report(node: ESTree.ArrayExpression) {
	context.report({
		fix(fixer) {
			// Removes the last element of the array:
			return removeArrayElement(context, fixer, node, node.elements.length - 1);
		},
		messageId,
		node,
	});
}
[
 	'a',
-	'b',
-	'c'
+	'b'
]

Trailing commas are removed so that the fixed code will work regardless of whether the language and location allows them.

removeObjectProperty

Removes a property from an object expression, along with any commas that are no longer necessary.

Parameters:

  1. context
  2. fixer
  3. property: the property node
import { removeObjectProperty } from "eslint-fix-utils";

// ...

export function report(node: ESTree.ObjectExpression) {
	context.report({
		fix(fixer) {
			// Removes the last property of the object:
			return removeObjectProperty(context, fixer, node.properties.length - 1);
		},
		messageId,
		node,
	});
}
{
 	a: 1,
-	b: 2,
-	c: 3,
+	b: 2
}

Trailing commas are removed so that the fixed code will work regardless of whether the language and location allows them.

Development

See .github/CONTRIBUTING.md, then .github/DEVELOPMENT.md. Thanks! πŸ’–

Contributors

Josh Goldberg ✨
Josh Goldberg ✨

πŸ’» πŸ–‹ πŸ“– πŸ€” πŸš‡ 🚧 πŸ“† ⚠️ πŸ”§ πŸ›
michael faith
michael faith

πŸ’» πŸ–‹ πŸ“– πŸ€” πŸš‡ 🚧 πŸ“† ⚠️ πŸ”§

πŸ’ This package was templated with create-typescript-app using the create engine.

About

Utilities for ESLint rule fixers and suggestions. πŸ§‘β€πŸ”§

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •