From 80ac539dbcf5391f8fba1e8f05d58002d62cfe0f Mon Sep 17 00:00:00 2001 From: SukkaW Date: Wed, 2 Jun 2021 21:06:21 +0800 Subject: [PATCH] chore(eslint-plugin): remove lodash from dependencies --- packages/eslint-plugin/package.json | 1 - packages/eslint-plugin/src/util/astUtils.ts | 2 +- packages/eslint-plugin/src/util/escapeRegExp.ts | 12 ++++++++++++ 3 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 packages/eslint-plugin/src/util/escapeRegExp.ts diff --git a/packages/eslint-plugin/package.json b/packages/eslint-plugin/package.json index 4037e73b7e04..df44871f04df 100644 --- a/packages/eslint-plugin/package.json +++ b/packages/eslint-plugin/package.json @@ -48,7 +48,6 @@ "@typescript-eslint/scope-manager": "4.26.0", "debug": "^4.3.1", "functional-red-black-tree": "^1.0.1", - "lodash": "^4.17.21", "regexpp": "^3.1.0", "semver": "^7.3.5", "tsutils": "^3.21.0" diff --git a/packages/eslint-plugin/src/util/astUtils.ts b/packages/eslint-plugin/src/util/astUtils.ts index 53ad3f116e60..3fe1c01e2968 100644 --- a/packages/eslint-plugin/src/util/astUtils.ts +++ b/packages/eslint-plugin/src/util/astUtils.ts @@ -1,5 +1,5 @@ import type { TSESLint, TSESTree } from '@typescript-eslint/experimental-utils'; -import escapeRegExp from 'lodash/escapeRegExp'; +import { escapeRegExp } from './escapeRegExp'; // deeply re-export, for convenience export * from '@typescript-eslint/experimental-utils/dist/ast-utils'; diff --git a/packages/eslint-plugin/src/util/escapeRegExp.ts b/packages/eslint-plugin/src/util/escapeRegExp.ts new file mode 100644 index 000000000000..52d161b3b207 --- /dev/null +++ b/packages/eslint-plugin/src/util/escapeRegExp.ts @@ -0,0 +1,12 @@ +/** + * Lodash + * Released under MIT license + */ +const reRegExpChar = /[\\^$.*+?()[\]{}|]/g; +const reHasRegExpChar = RegExp(reRegExpChar.source); + +export function escapeRegExp(string = ''): string { + return string && reHasRegExpChar.test(string) + ? string.replace(reRegExpChar, '\\$&') + : string; +}