An ESLint plugin that allows you to perform text replacements in your JavaScript/TypeScript code through ESLint rules. This plugin supports global replacements, variable name replacements, and import path modifications.
Installation | Usage | Examples
pnpm add -D @mathieumagalhaes/eslint-plugin-search-and-replaceyarn add --dev @mathieumagalhaes/eslint-plugin-search-and-replacenpm install --save-dev @mathieumagalhaes/eslint-plugin-search-and-replaceimport searchAndReplace from "@mathieumagalhaes/eslint-plugin-search-and-replace";
export default [
{
plugins: {
'search-and-replace': searchAndReplace
}
}
];The replace rule accepts the following options:
| Option | Type | Default | Description |
|---|---|---|---|
search |
string | - | The text or pattern to search for |
replace |
string | - | The text to replace matches with |
caseSensitive |
boolean | true |
Whether the search should be case sensitive |
scope |
string | "global" |
The scope of replacement. Can be "global", "variable", or "import-path" |
Then configure the rules you want to use under the rules section:
{
"rules": {
"search-and-replace/replace": ["error", {
"search": "foo",
"replace": "bar"
}]
}
}{
"rules": {
"search-and-replace/replace": ["error", {
"search": "oldText",
"replace": "newText"
}]
}
}{
"rules": {
"search-and-replace/replace": ["error", {
"search": "oldtext",
"replace": "newText",
"caseSensitive": false
}]
}
}{
"rules": {
"search-and-replace/replace": ["error", {
"search": "oldVar",
"replace": "newVar",
"scope": "variable"
}]
}
}{
"rules": {
"search-and-replace/replace": ["error", {
"search": "@old-package",
"replace": "@new-package",
"scope": "import-path"
}]
}
}You can also configure multiple replacement rules by passing an array:
{
"rules": {
"search-and-replace/replace": ["error", [
{
"search": "oldText",
"replace": "newText"
},
{
"search": "anotherOld",
"replace": "anotherNew",
"scope": "variable"
}
]]
}
}Continuous improvement is encouraged and your contributions are valuable!
If you identify areas for improvement, have suggestions or encounter issues, please create a GitHub issue.
- Install dependencies.
- Run
pnpm/yarn/npm run dev - You can edit
src/rules/**typescript files. - Linting this codebase can be done with
pnpm/yarn/npm run lint - Testing the codebase (after changes and build succesfully) can be done with
pnpm/yarn/npm run test
Any added feature should have at least one valid and at least one invalid test case.
This is licensed under the MIT License, see LICENSE