From e727520a8a0f59164396cb1aca2654157396fb84 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Sat, 28 Jun 2025 23:35:57 +0800 Subject: [PATCH 1/2] refactor: drop deprecated deps --- packages/autofix/lib/rules/valid-typeof.js | 62 +++++++++++----------- packages/autofix/package.json | 2 +- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/packages/autofix/lib/rules/valid-typeof.js b/packages/autofix/lib/rules/valid-typeof.js index dc429ca..0a7f71a 100644 --- a/packages/autofix/lib/rules/valid-typeof.js +++ b/packages/autofix/lib/rules/valid-typeof.js @@ -1,31 +1,31 @@ -/** - * @fileoverview add fixer to rule valid-typeof. - * @author Pig Fang - */ -"use strict"; - -const ruleComposer = require("eslint-rule-composer"); -const utils = require("../utils"); -const stringSimilarity = require("string-similarity"); - -const rule = utils.getFixableRule("valid-typeof", false); -const VALID_TYPES = ["symbol", "undefined", "object", "boolean", "number", "string", "function"]; - -module.exports = ruleComposer.mapReports( - rule, - problem => { - problem.fix = fixer => { - const { node } = problem, - { parent } = node; - const sibling = parent.left.type.endsWith("Literal") ? parent.left : parent.right; - const value = sibling.type === "Literal" ? sibling.value : sibling.quasis[0].value.cooked; - const best = stringSimilarity.findBestMatch(value, VALID_TYPES).bestMatch; - - if (best.rating > 0.3) { - return fixer.replaceText(sibling, `"${best.target}"`); - } - return null; - }; - return problem; - } -); +/** + * @fileoverview add fixer to rule valid-typeof. + * @author Pig Fang + */ +"use strict"; + +const ruleComposer = require("eslint-rule-composer"); +const utils = require("../utils"); +const { closest } = require("fastest-levenshtein"); + +const rule = utils.getFixableRule("valid-typeof", false); +const VALID_TYPES = ["symbol", "undefined", "object", "boolean", "number", "string", "function"]; + +module.exports = ruleComposer.mapReports( + rule, + problem => { + problem.fix = fixer => { + const { node } = problem, + { parent } = node; + const sibling = parent.left.type.endsWith("Literal") ? parent.left : parent.right; + const value = sibling.type === "Literal" ? sibling.value : sibling.quasis[0].value.cooked; + const best = closest(value, VALID_TYPES); + + if (best.rating > 0.3) { + return fixer.replaceText(sibling, `"${best.target}"`); + } + return null; + }; + return problem; + } +); diff --git a/packages/autofix/package.json b/packages/autofix/package.json index 13f064b..3a7bece 100644 --- a/packages/autofix/package.json +++ b/packages/autofix/package.json @@ -19,7 +19,7 @@ "eslint-rule-composer": "^0.3.0", "espree": "^9.0.0", "esutils": "^2.0.2", - "string-similarity": "^4.0.3" + "fastest-levenshtein": "^1.0.16" }, "devDependencies": { "@not-an-aardvark/node-release-script": "^0.1.0", From 57929b055aed70455068b5bba231cafa2fa41bc5 Mon Sep 17 00:00:00 2001 From: SukkaW Date: Sat, 28 Jun 2025 23:38:06 +0800 Subject: [PATCH 2/2] test: make test happy --- packages/autofix/lib/rules/valid-typeof.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/autofix/lib/rules/valid-typeof.js b/packages/autofix/lib/rules/valid-typeof.js index 0a7f71a..9a6db07 100644 --- a/packages/autofix/lib/rules/valid-typeof.js +++ b/packages/autofix/lib/rules/valid-typeof.js @@ -22,7 +22,7 @@ module.exports = ruleComposer.mapReports( const best = closest(value, VALID_TYPES); if (best.rating > 0.3) { - return fixer.replaceText(sibling, `"${best.target}"`); + return fixer.replaceText(sibling, `'${best.target}'`); } return null; };