From 425446b7e6f73f762cd5099f35e32bfa90b2ecfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Wed, 25 Dec 2019 00:54:36 +0100 Subject: [PATCH 1/2] Replace custom "fundSuggestion" function with "levenary" --- lib/third-party-libs.js.flow | 6 ------ packages/babel-preset-env/package.json | 2 +- packages/babel-preset-env/src/normalize-options.js | 2 +- packages/babel-preset-env/src/targets-parser.js | 8 ++------ packages/babel-preset-env/src/utils.js | 13 ------------- packages/babel-preset-env/test/utils.spec.js | 12 +----------- 6 files changed, 5 insertions(+), 38 deletions(-) diff --git a/lib/third-party-libs.js.flow b/lib/third-party-libs.js.flow index e4c31f2f42cd..f7314b07027e 100644 --- a/lib/third-party-libs.js.flow +++ b/lib/third-party-libs.js.flow @@ -190,12 +190,6 @@ declare module "convert-source-map" { }; } -declare module "js-levenshtein" { - declare module.exports: { - (string, string): number, - }; -} - declare module "core-js-compat/data" { declare type Target = "node" | "chrome" | "opera" | "edge" | "firefox" | "safari" | "ie" | "ios" | "android" | "electron" | "samsung"; diff --git a/packages/babel-preset-env/package.json b/packages/babel-preset-env/package.json index efd61c921943..49f5de08e636 100644 --- a/packages/babel-preset-env/package.json +++ b/packages/babel-preset-env/package.json @@ -63,7 +63,7 @@ "browserslist": "^4.6.0", "core-js-compat": "^3.6.0", "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", + "levenary": "^1.0.2", "semver": "^5.5.0" }, "peerDependencies": { diff --git a/packages/babel-preset-env/src/normalize-options.js b/packages/babel-preset-env/src/normalize-options.js index 523857ea5832..79998befaeb4 100644 --- a/packages/babel-preset-env/src/normalize-options.js +++ b/packages/babel-preset-env/src/normalize-options.js @@ -8,7 +8,7 @@ import moduleTransformations from "./module-transformations"; import { TopLevelOptions, ModulesOption, UseBuiltInsOption } from "./options"; import { defaultWebIncludes } from "./polyfills/corejs2/get-platform-specific-default"; import { isBrowsersQueryValid } from "./targets-parser"; -import { findSuggestion } from "./utils"; +import findSuggestion from "levenary"; import type { BuiltInsOption, diff --git a/packages/babel-preset-env/src/targets-parser.js b/packages/babel-preset-env/src/targets-parser.js index 4c006bf2f073..f2284e715ca4 100644 --- a/packages/babel-preset-env/src/targets-parser.js +++ b/packages/babel-preset-env/src/targets-parser.js @@ -3,12 +3,8 @@ import browserslist from "browserslist"; import invariant from "invariant"; import semver from "semver"; -import { - semverify, - isUnreleasedVersion, - getLowestUnreleased, - findSuggestion, -} from "./utils"; +import findSuggestion from "levenary"; +import { semverify, isUnreleasedVersion, getLowestUnreleased } from "./utils"; import browserModulesData from "../data/built-in-modules.json"; import { TargetNames } from "./options"; import type { Targets } from "./types"; diff --git a/packages/babel-preset-env/src/utils.js b/packages/babel-preset-env/src/utils.js index cb35951a8f87..5b5aaae9b6f2 100644 --- a/packages/babel-preset-env/src/utils.js +++ b/packages/babel-preset-env/src/utils.js @@ -4,7 +4,6 @@ import * as t from "@babel/types"; import type { NodePath } from "@babel/traverse"; import invariant from "invariant"; import semver from "semver"; -import levenshtein from "js-levenshtein"; import { addSideEffect } from "@babel/helper-module-imports"; import unreleasedLabels from "../data/unreleased-labels"; import { semverMin } from "./targets-parser"; @@ -53,18 +52,6 @@ export function intersection( return result; } -export function findSuggestion(options: string[], option: string): string { - let levenshteinValue = Infinity; - return options.reduce((suggestion, validOption) => { - const value = levenshtein(validOption, option); - if (value < levenshteinValue) { - levenshteinValue = value; - return validOption; - } - return suggestion; - }, ""); -} - export function prettifyVersion(version: string) { if (typeof version !== "string") { return version; diff --git a/packages/babel-preset-env/test/utils.spec.js b/packages/babel-preset-env/test/utils.spec.js index 6a6bb48d3919..a5ca4256cda5 100644 --- a/packages/babel-preset-env/test/utils.spec.js +++ b/packages/babel-preset-env/test/utils.spec.js @@ -2,7 +2,7 @@ const utils = require("../lib/utils"); -const { prettifyTargets, prettifyVersion, semverify, findSuggestion } = utils; +const { prettifyTargets, prettifyVersion, semverify } = utils; describe("utils", () => { describe("semverify", () => { @@ -50,14 +50,4 @@ describe("utils", () => { }); }); }); - - describe("findSuggestion", () => { - it("returns", () => { - const options = ["one", "two", "three"]; - expect(findSuggestion(options, "onr")).toEqual("one"); - expect(findSuggestion(options, "tree")).toEqual("three"); - expect(findSuggestion(options, "")).toEqual("one"); - expect(findSuggestion(options, "xxx")).toEqual("one"); - }); - }); }); From e6e7f35b0eada0560b8d221a2495a634780f9bd2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Ribaudo?= Date: Thu, 26 Dec 2019 00:44:11 +0100 Subject: [PATCH 2/2] Update --- packages/babel-preset-env/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/babel-preset-env/package.json b/packages/babel-preset-env/package.json index 49f5de08e636..17bfe8f75f13 100644 --- a/packages/babel-preset-env/package.json +++ b/packages/babel-preset-env/package.json @@ -63,7 +63,7 @@ "browserslist": "^4.6.0", "core-js-compat": "^3.6.0", "invariant": "^2.2.2", - "levenary": "^1.0.2", + "levenary": "^1.1.0", "semver": "^5.5.0" }, "peerDependencies": {