From 23c9259aa31424d96fdc87f61236fd3b84aed2c3 Mon Sep 17 00:00:00 2001
From: Ben McCann <322311+benmccann@users.noreply.github.com>
Date: Thu, 6 Oct 2022 20:35:42 -0700
Subject: [PATCH] chore: update magic-string (#10364)
---
packages/vite/package.json | 2 +-
packages/vite/src/node/plugins/asset.ts | 8 ++---
.../src/node/plugins/assetImportMetaUrl.ts | 10 +++----
packages/vite/src/node/plugins/define.ts | 2 +-
packages/vite/src/node/plugins/html.ts | 28 +++++-------------
.../src/node/plugins/importAnalysisBuild.ts | 29 +++++--------------
packages/vite/src/node/plugins/worker.ts | 9 +-----
.../src/node/plugins/workerImportMetaUrl.ts | 5 ++--
.../src/node/server/middlewares/indexHtml.ts | 5 ++--
packages/vite/src/node/ssr/ssrTransform.ts | 13 ++++-----
pnpm-lock.yaml | 17 +++++++----
11 files changed, 45 insertions(+), 83 deletions(-)
diff --git a/packages/vite/package.json b/packages/vite/package.json
index 710e06dbcbbf6d..aeef277ff670a3 100644
--- a/packages/vite/package.json
+++ b/packages/vite/package.json
@@ -97,7 +97,7 @@
"http-proxy": "^1.18.1",
"json5": "^2.2.1",
"launch-editor-middleware": "^2.6.0",
- "magic-string": "^0.26.5",
+ "magic-string": "^0.26.6",
"micromatch": "^4.0.5",
"mlly": "^0.5.16",
"mrmime": "^1.0.1",
diff --git a/packages/vite/src/node/plugins/asset.ts b/packages/vite/src/node/plugins/asset.ts
index 3839b54ef3365b..a7a8f2554bf0a1 100644
--- a/packages/vite/src/node/plugins/asset.ts
+++ b/packages/vite/src/node/plugins/asset.ts
@@ -95,9 +95,7 @@ export function renderAssetUrlInJS(
typeof replacement === 'string'
? JSON.stringify(replacement).slice(1, -1)
: `"+${replacement.runtime}+"`
- s.overwrite(match.index, match.index + full.length, replacementString, {
- contentOnly: true
- })
+ s.update(match.index, match.index + full.length, replacementString)
}
// Replace __VITE_PUBLIC_ASSET__5aa0ddc0__ with absolute paths
@@ -119,9 +117,7 @@ export function renderAssetUrlInJS(
typeof replacement === 'string'
? JSON.stringify(replacement).slice(1, -1)
: `"+${replacement.runtime}+"`
- s.overwrite(match.index, match.index + full.length, replacementString, {
- contentOnly: true
- })
+ s.update(match.index, match.index + full.length, replacementString)
}
return s
diff --git a/packages/vite/src/node/plugins/assetImportMetaUrl.ts b/packages/vite/src/node/plugins/assetImportMetaUrl.ts
index de946614620866..c21c1a0c29e4f8 100644
--- a/packages/vite/src/node/plugins/assetImportMetaUrl.ts
+++ b/packages/vite/src/node/plugins/assetImportMetaUrl.ts
@@ -61,11 +61,10 @@ export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin {
// target so we use the global location here. It can be
// window.location or self.location in case it is used in a Web Worker.
// @see https://developer.mozilla.org/en-US/docs/Web/API/Window/self
- s.overwrite(
+ s.update(
index,
index + exp.length,
- `new URL((import.meta.glob(${pattern}, { eager: true, import: 'default', as: 'url' }))[${rawUrl}], self.location)`,
- { contentOnly: true }
+ `new URL((import.meta.glob(${pattern}, { eager: true, import: 'default', as: 'url' }))[${rawUrl}], self.location)`
)
continue
}
@@ -111,11 +110,10 @@ export function assetImportMetaUrlPlugin(config: ResolvedConfig): Plugin {
)
builtUrl = url
}
- s.overwrite(
+ s.update(
index,
index + exp.length,
- `new URL(${JSON.stringify(builtUrl)}, self.location)`,
- { contentOnly: true }
+ `new URL(${JSON.stringify(builtUrl)}, self.location)`
)
}
if (s) {
diff --git a/packages/vite/src/node/plugins/define.ts b/packages/vite/src/node/plugins/define.ts
index 0448327d660ed6..e683ba4d0175db 100644
--- a/packages/vite/src/node/plugins/define.ts
+++ b/packages/vite/src/node/plugins/define.ts
@@ -139,7 +139,7 @@ export function definePlugin(config: ResolvedConfig): Plugin {
const start = match.index
const end = start + match[0].length
const replacement = '' + replacements[match[1]]
- s.overwrite(start, end, replacement, { contentOnly: true })
+ s.update(start, end, replacement)
}
if (!hasReplaced) {
diff --git a/packages/vite/src/node/plugins/html.ts b/packages/vite/src/node/plugins/html.ts
index 5285fab26cd0b4..ad2f3abd39af32 100644
--- a/packages/vite/src/node/plugins/html.ts
+++ b/packages/vite/src/node/plugins/html.ts
@@ -216,11 +216,10 @@ export function overwriteAttrValue(
}
const wrapOffset = valueStart[1] === '"' || valueStart[1] === "'" ? 1 : 0
const valueOffset = valueStart.index! + valueStart[0].length - 1
- s.overwrite(
+ s.update(
sourceCodeLocation.startOffset + valueOffset + wrapOffset,
sourceCodeLocation.endOffset - wrapOffset,
- newValue,
- { contentOnly: true }
+ newValue
)
return s
}
@@ -487,11 +486,10 @@ export function buildHtmlPlugin(config: ResolvedConfig): Plugin {
js += `\nimport "${id}?html-proxy&inline-css&index=${inlineModuleIndex}.css"`
const hash = getHash(cleanUrl(id))
// will transform in `applyHtmlTransforms`
- s.overwrite(
+ s.update(
styleNode.sourceCodeLocation!.startOffset,
styleNode.sourceCodeLocation!.endOffset,
- `__VITE_INLINE_CSS__${hash}_${inlineModuleIndex}__`,
- { contentOnly: true }
+ `__VITE_INLINE_CSS__${hash}_${inlineModuleIndex}__`
)
}
@@ -546,16 +544,9 @@ export function buildHtmlPlugin(config: ResolvedConfig): Plugin {
// emit asset
for (const { start, end, url } of scriptUrls) {
if (!isExcludedUrl(url)) {
- s.overwrite(
- start,
- end,
- await urlToBuiltUrl(url, id, config, this),
- { contentOnly: true }
- )
+ s.update(start, end, await urlToBuiltUrl(url, id, config, this))
} else if (checkPublicFile(url, config)) {
- s.overwrite(start, end, toOutputPublicFilePath(url), {
- contentOnly: true
- })
+ s.update(start, end, toOutputPublicFilePath(url))
}
}
@@ -780,12 +771,7 @@ export function buildHtmlPlugin(config: ResolvedConfig): Plugin {
s ||= new MagicString(result)
const { 0: full, 1: scopedName } = match
const cssTransformedCode = htmlProxyResult.get(scopedName)!
- s.overwrite(
- match.index,
- match.index + full.length,
- cssTransformedCode,
- { contentOnly: true }
- )
+ s.update(match.index, match.index + full.length, cssTransformedCode)
}
if (s) {
result = s.toString()
diff --git a/packages/vite/src/node/plugins/importAnalysisBuild.ts b/packages/vite/src/node/plugins/importAnalysisBuild.ts
index 849b71c4cdcd64..d1eaa6437a6962 100644
--- a/packages/vite/src/node/plugins/importAnalysisBuild.ts
+++ b/packages/vite/src/node/plugins/importAnalysisBuild.ts
@@ -350,9 +350,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
if (!rewriteDone) {
let rewrittenUrl = JSON.stringify(file)
if (!isDynamicImport) rewrittenUrl = rewrittenUrl.slice(1, -1)
- str().overwrite(start, end, rewrittenUrl, {
- contentOnly: true
- })
+ str().update(start, end, rewrittenUrl)
}
}
}
@@ -374,9 +372,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
!(bareImportRE.test(specifier) && !specifier.includes('/'))
) {
const url = specifier.replace(/\?|$/, (m) => `?used${m ? '&' : ''}`)
- str().overwrite(start, end, isDynamicImport ? `'${url}'` : url, {
- contentOnly: true
- })
+ str().update(start, end, isDynamicImport ? `'${url}'` : url)
}
}
@@ -405,12 +401,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
const s = new MagicString(code)
let match: RegExpExecArray | null
while ((match = re.exec(code))) {
- s.overwrite(
- match.index,
- match.index + isModernFlag.length,
- isModern,
- { contentOnly: true }
- )
+ s.update(match.index, match.index + isModernFlag.length, isModern)
}
return {
code: s.toString(),
@@ -505,9 +496,7 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
hasRemovedPureCssChunk = true
}
- s.overwrite(expStart, expEnd, 'Promise.resolve({})', {
- contentOnly: true
- })
+ s.update(expStart, expEnd, 'Promise.resolve({})')
}
}
}
@@ -582,11 +571,10 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
)
}
- s.overwrite(
+ s.update(
markerStartPos,
markerStartPos + preloadMarkerWithQuote.length,
- `[${renderedDeps.join(',')}]`,
- { contentOnly: true }
+ `[${renderedDeps.join(',')}]`
)
rewroteMarkerStartPos.add(markerStartPos)
}
@@ -598,11 +586,10 @@ export function buildImportAnalysisPlugin(config: ResolvedConfig): Plugin {
let markerStartPos = code.indexOf(preloadMarkerWithQuote)
while (markerStartPos >= 0) {
if (!rewroteMarkerStartPos.has(markerStartPos)) {
- s.overwrite(
+ s.update(
markerStartPos,
markerStartPos + preloadMarkerWithQuote.length,
- 'void 0',
- { contentOnly: true }
+ 'void 0'
)
}
diff --git a/packages/vite/src/node/plugins/worker.ts b/packages/vite/src/node/plugins/worker.ts
index b645d178f6f645..02d0dd3d74ece4 100644
--- a/packages/vite/src/node/plugins/worker.ts
+++ b/packages/vite/src/node/plugins/worker.ts
@@ -356,14 +356,7 @@ export function webWorkerPlugin(config: ResolvedConfig): Plugin {
typeof replacement === 'string'
? JSON.stringify(replacement).slice(1, -1)
: `"+${replacement.runtime}+"`
- s.overwrite(
- match.index,
- match.index + full.length,
- replacementString,
- {
- contentOnly: true
- }
- )
+ s.update(match.index, match.index + full.length, replacementString)
}
}
return result()
diff --git a/packages/vite/src/node/plugins/workerImportMetaUrl.ts b/packages/vite/src/node/plugins/workerImportMetaUrl.ts
index b0173b6b03ca6e..a2c4e22038b672 100644
--- a/packages/vite/src/node/plugins/workerImportMetaUrl.ts
+++ b/packages/vite/src/node/plugins/workerImportMetaUrl.ts
@@ -141,11 +141,10 @@ export function workerImportMetaUrlPlugin(config: ResolvedConfig): Plugin {
builtUrl = injectQuery(builtUrl, WORKER_FILE_ID)
builtUrl = injectQuery(builtUrl, `type=${workerType}`)
}
- s.overwrite(
+ s.update(
urlIndex,
urlIndex + exp.length,
- `new URL(${JSON.stringify(builtUrl)}, self.location)`,
- { contentOnly: true }
+ `new URL(${JSON.stringify(builtUrl)}, self.location)`
)
}
diff --git a/packages/vite/src/node/server/middlewares/indexHtml.ts b/packages/vite/src/node/server/middlewares/indexHtml.ts
index 8c036629bcf26e..736fc316ee3011 100644
--- a/packages/vite/src/node/server/middlewares/indexHtml.ts
+++ b/packages/vite/src/node/server/middlewares/indexHtml.ts
@@ -184,11 +184,10 @@ const devHtmlHook: IndexHtmlTransformHook = async (
if (module) {
server?.moduleGraph.invalidateModule(module)
}
- s.overwrite(
+ s.update(
node.sourceCodeLocation!.startOffset,
node.sourceCodeLocation!.endOffset,
- ``,
- { contentOnly: true }
+ ``
)
}
diff --git a/packages/vite/src/node/ssr/ssrTransform.ts b/packages/vite/src/node/ssr/ssrTransform.ts
index fe24dddac2e79a..12c3bb354b6c9e 100644
--- a/packages/vite/src/node/ssr/ssrTransform.ts
+++ b/packages/vite/src/node/ssr/ssrTransform.ts
@@ -196,11 +196,10 @@ async function ssrTransformScript(
)
} else {
// anonymous default exports
- s.overwrite(
+ s.update(
node.start,
node.start + 14 /* 'export default'.length */,
- `${ssrModuleExportsKey}.default =`,
- { contentOnly: true }
+ `${ssrModuleExportsKey}.default =`
)
}
}
@@ -247,16 +246,14 @@ async function ssrTransformScript(
s.prependRight(topNode.start, `const ${id.name} = ${binding};\n`)
}
} else {
- s.overwrite(id.start, id.end, binding, { contentOnly: true })
+ s.update(id.start, id.end, binding)
}
},
onImportMeta(node) {
- s.overwrite(node.start, node.end, ssrImportMetaKey, { contentOnly: true })
+ s.update(node.start, node.end, ssrImportMetaKey)
},
onDynamicImport(node) {
- s.overwrite(node.start, node.start + 6, ssrDynamicImportKey, {
- contentOnly: true
- })
+ s.update(node.start, node.start + 6, ssrDynamicImportKey)
if (node.type === 'ImportExpression' && node.source.type === 'Literal') {
dynamicDeps.add(node.source.value as string)
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index c3004290db3fc8..93f7aa14a41e63 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -243,7 +243,7 @@ importers:
http-proxy: ^1.18.1
json5: ^2.2.1
launch-editor-middleware: ^2.6.0
- magic-string: ^0.26.5
+ magic-string: ^0.26.6
micromatch: ^4.0.5
mlly: ^0.5.16
mrmime: ^1.0.1
@@ -308,7 +308,7 @@ importers:
http-proxy: 1.18.1_debug@4.3.4
json5: 2.2.1
launch-editor-middleware: 2.6.0
- magic-string: 0.26.5
+ magic-string: 0.26.6
micromatch: 4.0.5
mlly: 0.5.16
mrmime: 1.0.1
@@ -6246,6 +6246,13 @@ packages:
dependencies:
sourcemap-codec: 1.4.8
+ /magic-string/0.26.6:
+ resolution: {integrity: sha512-6d+3bFybzyQFJYSoRsl9ZC0wheze8M1LrQC7tNMRqXR4izUTDOLMd9BtSuExK9iAukFh+s5K0WAhc/dlQ+HKYA==}
+ engines: {node: '>=12'}
+ dependencies:
+ sourcemap-codec: 1.4.8
+ dev: true
+
/make-dir/2.1.0:
resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
engines: {node: '>=6'}
@@ -7661,7 +7668,7 @@ packages:
rollup: ^2.55
typescript: ^4.1
dependencies:
- magic-string: 0.26.5
+ magic-string: 0.26.6
rollup: 2.79.1
typescript: 4.8.2
optionalDependencies:
@@ -7695,7 +7702,7 @@ packages:
commenting: 1.1.0
glob: 7.2.0
lodash: 4.17.21
- magic-string: 0.26.5
+ magic-string: 0.26.6
mkdirp: 1.0.4
moment: 2.29.3
package-name-regex: 2.0.6
@@ -8601,7 +8608,7 @@ packages:
globby: 13.1.2
hookable: 5.3.0
jiti: 1.14.0
- magic-string: 0.26.5
+ magic-string: 0.26.6
mkdirp: 1.0.4
mkdist: 0.3.13_typescript@4.8.2
mlly: 0.5.16