From 4edd0438cff92f047122bbb1a9e2a261f4d22c17 Mon Sep 17 00:00:00 2001 From: Tobias Koppers Date: Tue, 9 Nov 2021 12:24:53 +0100 Subject: [PATCH] fix using single quotes with esm files --- lib/FileSystemInfo.js | 13 +++++++------ test/fixtures/buildDependencies/esm.mjs | 4 ++++ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/FileSystemInfo.js b/lib/FileSystemInfo.js index b98215d1b9e..f3337a00713 100644 --- a/lib/FileSystemInfo.js +++ b/lib/FileSystemInfo.js @@ -692,6 +692,11 @@ class SnapshotOptimization { } } +const parseString = str => { + if (str[0] === "'") str = `"${str.slice(1, -1).replace(/"/g, '\\"')}"`; + return JSON.parse(str); +}; + /* istanbul ignore next */ /** * @param {number} mtime mtime @@ -1657,17 +1662,13 @@ class FileSystemInfo { let dependency; if (imp.d === -1) { // import ... from "..." - dependency = JSON.parse( + dependency = parseString( source.substring(imp.s - 1, imp.e + 1) ); } else if (imp.d > -1) { // import() let expr = source.substring(imp.s, imp.e).trim(); - if (expr[0] === "'") - expr = `"${expr - .slice(1, -1) - .replace(/"/g, '\\"')}"`; - dependency = JSON.parse(expr); + dependency = parseString(expr); } else { // e.g. import.meta continue; diff --git a/test/fixtures/buildDependencies/esm.mjs b/test/fixtures/buildDependencies/esm.mjs index cd233797b08..6b8775cc057 100644 --- a/test/fixtures/buildDependencies/esm.mjs +++ b/test/fixtures/buildDependencies/esm.mjs @@ -1,5 +1,9 @@ export { default } from "./esm-dep.mjs"; +// prettier-ignore +import './esm-dep.mjs'; export const asyncDep = ( await import("../../js/buildDepsInput/esm-async-dependency.mjs") ).default; +// prettier-ignore +await import('../../js/buildDepsInput/esm-async-dependency.mjs')