diff options
author | 2022-06-28 10:54:59 -0500 | |
---|---|---|
committer | 2022-06-28 10:54:59 -0500 | |
commit | 199fd91e8f3780295eacbd669e5a5ecfabdcf0bf (patch) | |
tree | b683805b7a134af871d0d59e7635a7bdc42fd2b4 | |
parent | 8829cc7ab661fb90d05a3697040a370d710e66fd (diff) | |
download | astro-199fd91e8f3780295eacbd669e5a5ecfabdcf0bf.tar.gz astro-199fd91e8f3780295eacbd669e5a5ecfabdcf0bf.tar.zst astro-199fd91e8f3780295eacbd669e5a5ecfabdcf0bf.zip |
chore: escape template literals in prebuild script (#3745)
Co-authored-by: Nate Moore <nate@astro.build>
-rw-r--r-- | scripts/cmd/prebuild.js | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/scripts/cmd/prebuild.js b/scripts/cmd/prebuild.js index cc276b943..bb8220eef 100644 --- a/scripts/cmd/prebuild.js +++ b/scripts/cmd/prebuild.js @@ -1,10 +1,13 @@ -import * as terser from 'terser'; import esbuild from 'esbuild'; import glob from 'tiny-glob'; import fs from 'fs'; import path from 'path'; import { pathToFileURL, fileURLToPath } from 'url'; +function escapeTemplateLiterals(str) { + return str.replace(/\`/g, '\\`').replace(/\$\{/g, '\\${'); +} + export default async function prebuild(...args) { let buildToString = args.indexOf('--to-string'); if (buildToString !== -1) { @@ -49,7 +52,7 @@ export default async function prebuild(...args) { * to generate this file. */ -export default \`${esbuildresult.code.trim()}\`;`; +export default \`${escapeTemplateLiterals(esbuildresult.code.trim())}\`;`; const url = getPrebuildURL(filepath); await fs.promises.writeFile(url, mod, 'utf-8'); } |