From 515c0d3cd0ccd4e7dacf609608ebd2e46d0e7fbf Mon Sep 17 00:00:00 2001 From: ahabhgk Date: Thu, 4 Jul 2024 15:36:24 +0800 Subject: [PATCH 1/2] fix: strip slash for pretty regexp --- lib/ContextModule.js | 8 ++++---- test/cases/context/issue-10969/index.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/ContextModule.js b/lib/ContextModule.js index df19de677..9fb17ff0a 100644 --- a/lib/ContextModule.js +++ b/lib/ContextModule.js @@ -185,13 +185,13 @@ class ContextModule extends Module { /** * @private - * @param {RegExp} regexString RegExp as a string + * @param {RegExp} regex RegExp * @param {boolean=} stripSlash do we need to strip a slsh * @returns {string} pretty RegExp */ - _prettyRegExp(regexString, stripSlash = true) { - const str = (regexString + "").replace(/!/g, "%21").replace(/\|/g, "%7C"); - return stripSlash ? str.substring(1, str.length - 1) : str; + _prettyRegExp(regex, stripSlash = true) { + const regexString = stripSlash ? regex.source + regex.flags : regex + ""; + return regexString.replace(/!/g, "%21").replace(/\|/g, "%7C"); } _createIdentifier() { diff --git a/test/cases/context/issue-10969/index.js b/test/cases/context/issue-10969/index.js index 3c136e6e1..200b8f310 100644 --- a/test/cases/context/issue-10969/index.js +++ b/test/cases/context/issue-10969/index.js @@ -7,6 +7,6 @@ it("should replace ! with %21 in the module id string of the context module", fu ).id; if (typeof moduleId !== "number") expect(moduleId).toBe( - "./context/issue-10969/folder lazy recursive ^(?%21file1\\.js$).*$/" + "./context/issue-10969/folder lazy recursive ^(?%21file1\\.js$).*$i" ); }); From 05c0d8270c7492c4c9f4062dfde87831e714782d Mon Sep 17 00:00:00 2001 From: ahabhgk Date: Wed, 10 Jul 2024 12:45:14 +0800 Subject: [PATCH 2/2] fix cr --- lib/ContextModule.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/ContextModule.js b/lib/ContextModule.js index 9fb17ff0a..01ae0f322 100644 --- a/lib/ContextModule.js +++ b/lib/ContextModule.js @@ -185,13 +185,15 @@ class ContextModule extends Module { /** * @private - * @param {RegExp} regex RegExp + * @param {RegExp} regexString RegExp as a string * @param {boolean=} stripSlash do we need to strip a slsh * @returns {string} pretty RegExp */ - _prettyRegExp(regex, stripSlash = true) { - const regexString = stripSlash ? regex.source + regex.flags : regex + ""; - return regexString.replace(/!/g, "%21").replace(/\|/g, "%7C"); + _prettyRegExp(regexString, stripSlash = true) { + const str = stripSlash + ? regexString.source + regexString.flags + : regexString + ""; + return str.replace(/!/g, "%21").replace(/\|/g, "%7C"); } _createIdentifier() {