From 0cad8523c05e1c4a420dd74ba53312c70794e307 Mon Sep 17 00:00:00 2001 From: Henry Zhu Date: Thu, 25 Mar 2021 23:07:09 -0400 Subject: [PATCH] inline escapeRegExp instead of using any dep --- lib/third-party-libs.js.flow | 4 ---- packages/babel-core/src/config/helpers/escape-regexp.cjs | 5 ----- packages/babel-core/src/config/pattern-to-regex.js | 7 ++++--- .../src/escape-regexp.cjs | 5 ----- .../src/index.ts | 6 ++++-- packages/babel-register/src/escape-regexp.cjs | 5 ----- packages/babel-register/src/node.js | 5 ++++- 7 files changed, 12 insertions(+), 25 deletions(-) delete mode 100644 packages/babel-core/src/config/helpers/escape-regexp.cjs delete mode 100644 packages/babel-helper-transform-fixture-test-runner/src/escape-regexp.cjs delete mode 100644 packages/babel-register/src/escape-regexp.cjs diff --git a/lib/third-party-libs.js.flow b/lib/third-party-libs.js.flow index 6c1c06f1d4b5..e5782e65f95c 100644 --- a/lib/third-party-libs.js.flow +++ b/lib/third-party-libs.js.flow @@ -30,10 +30,6 @@ declare module "lodash/merge" { declare export default (T, Object) => T; } -declare module "lodash/escapeRegExp" { - declare export default (toEscape?: string) => string; -} - declare module "semver" { declare class SemVer { build: Array; diff --git a/packages/babel-core/src/config/helpers/escape-regexp.cjs b/packages/babel-core/src/config/helpers/escape-regexp.cjs deleted file mode 100644 index a3a4be68f185..000000000000 --- a/packages/babel-core/src/config/helpers/escape-regexp.cjs +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -module.exports = process.env.BABEL_8_BREAKING - ? require("escape-string-regexp") - : require("lodash/escapeRegExp"); diff --git a/packages/babel-core/src/config/pattern-to-regex.js b/packages/babel-core/src/config/pattern-to-regex.js index 12b74eee9324..8e868b3c6ffd 100644 --- a/packages/babel-core/src/config/pattern-to-regex.js +++ b/packages/babel-core/src/config/pattern-to-regex.js @@ -1,9 +1,6 @@ // @flow import path from "path"; -// $FlowIgnore -import escapeRegExp from "./helpers/escape-regexp.cjs"; - const sep = `\\${path.sep}`; const endSep = `(?:${sep}|$)`; @@ -15,6 +12,10 @@ const starPatLast = `(?:${substitution}${endSep})`; const starStarPat = `${starPat}*?`; const starStarPatLast = `${starPat}*?${starPatLast}?`; +function escapeRegExp(string) { + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"); +} + /** * Implement basic pattern matching that will allow users to do the simple * tests with * and **. If users want full complex pattern matching, then can diff --git a/packages/babel-helper-transform-fixture-test-runner/src/escape-regexp.cjs b/packages/babel-helper-transform-fixture-test-runner/src/escape-regexp.cjs deleted file mode 100644 index a3a4be68f185..000000000000 --- a/packages/babel-helper-transform-fixture-test-runner/src/escape-regexp.cjs +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -module.exports = process.env.BABEL_8_BREAKING - ? require("escape-string-regexp") - : require("lodash/escapeRegExp"); diff --git a/packages/babel-helper-transform-fixture-test-runner/src/index.ts b/packages/babel-helper-transform-fixture-test-runner/src/index.ts index 5d11d54a3d44..3eb1b77f0e8b 100644 --- a/packages/babel-helper-transform-fixture-test-runner/src/index.ts +++ b/packages/babel-helper-transform-fixture-test-runner/src/index.ts @@ -14,8 +14,6 @@ import fs from "fs"; import path from "path"; import vm from "vm"; import QuickLRU from "quick-lru"; -// @ts-ignore -import escapeRegExp from "./escape-regexp.cjs"; import { fileURLToPath } from "url"; import { createRequire } from "module"; @@ -345,6 +343,10 @@ function validateFile(actualCode, expectedLoc, expectedCode) { } } +function escapeRegExp(string) { + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"); +} + function normalizeOutput(code, normalizePathSeparator?) { const projectRoot = path.resolve( path.dirname(fileURLToPath(import.meta.url)), diff --git a/packages/babel-register/src/escape-regexp.cjs b/packages/babel-register/src/escape-regexp.cjs deleted file mode 100644 index a3a4be68f185..000000000000 --- a/packages/babel-register/src/escape-regexp.cjs +++ /dev/null @@ -1,5 +0,0 @@ -"use strict"; - -module.exports = process.env.BABEL_8_BREAKING - ? require("escape-string-regexp") - : require("lodash/escapeRegExp"); diff --git a/packages/babel-register/src/node.js b/packages/babel-register/src/node.js index 62196e635c5e..3a9eb082f7f6 100644 --- a/packages/babel-register/src/node.js +++ b/packages/babel-register/src/node.js @@ -7,7 +7,6 @@ import { addHook } from "pirates"; import fs from "fs"; import path from "path"; import Module from "module"; -import escapeRegExp from "./escape-regexp.cjs"; const maps = {}; let transformOpts = {}; @@ -109,6 +108,10 @@ export function revert() { if (piratesRevert) piratesRevert(); } +function escapeRegExp(string) { + return string.replace(/[|\\{}()[\]^$+*?.]/g, "\\$&"); +} + export default function register(opts?: Object = {}) { // Clone to avoid mutating the arguments object with the 'delete's below. opts = {