From e3de793c4703cd2c6c7245787ed89753d2fcca86 Mon Sep 17 00:00:00 2001 From: Simon H <5968653+dummdidumm@users.noreply.github.com> Date: Mon, 19 Sep 2022 17:07:07 +0200 Subject: [PATCH] [fix] don't strip type="application/.." tags (#6887) * [fix] don't strip type="application/.." tags Fixes #6862 * changeset --- .changeset/cyan-pianos-bake.md | 5 +++++ packages/package/src/utils.js | 6 +++++- .../package/test/fixtures/typescript/expected/Plain.svelte | 4 ++++ .../package/test/fixtures/typescript/src/lib/Plain.svelte | 4 ++++ packages/package/test/fixtures/typescript/svelte.config.js | 4 +++- 5 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 .changeset/cyan-pianos-bake.md diff --git a/.changeset/cyan-pianos-bake.md b/.changeset/cyan-pianos-bake.md new file mode 100644 index 000000000000..7991f006db89 --- /dev/null +++ b/.changeset/cyan-pianos-bake.md @@ -0,0 +1,5 @@ +--- +'@sveltejs/package': patch +--- + +[fix] don't strip `type="application/.."` tags diff --git a/packages/package/src/utils.js b/packages/package/src/utils.js index 97c3b03dbf3c..0b263857b54c 100644 --- a/packages/package/src/utils.js +++ b/packages/package/src/utils.js @@ -49,7 +49,11 @@ export function resolve_lib_alias(file, content, config) { */ export function strip_lang_tags(content) { return content - .replace(/()|(]*?)\s(?:type|lang)=(["']).*?\3/g, '$1$2') + .replace( + /()|(]*?)\s(?:type|lang)=(["'])(.*?)\3/g, + // things like application/ld+json should be kept as-is. Preprocessed languages are "ts" etc + (match, s1, s2, _, s4) => (s4.startsWith('application/') ? match : (s1 ?? '') + (s2 ?? '')) + ) .replace(/()|(]*?)\s(?:type|lang)=(["']).*?\3/g, '$1$2'); } diff --git a/packages/package/test/fixtures/typescript/expected/Plain.svelte b/packages/package/test/fixtures/typescript/expected/Plain.svelte index b49daed30015..29329add3320 100644 --- a/packages/package/test/fixtures/typescript/expected/Plain.svelte +++ b/packages/package/test/fixtures/typescript/expected/Plain.svelte @@ -2,3 +2,7 @@ /** @type {import('./foo').Foo} */ export let foo; + + + + diff --git a/packages/package/test/fixtures/typescript/src/lib/Plain.svelte b/packages/package/test/fixtures/typescript/src/lib/Plain.svelte index b49daed30015..29329add3320 100644 --- a/packages/package/test/fixtures/typescript/src/lib/Plain.svelte +++ b/packages/package/test/fixtures/typescript/src/lib/Plain.svelte @@ -2,3 +2,7 @@ /** @type {import('./foo').Foo} */ export let foo; + + + + diff --git a/packages/package/test/fixtures/typescript/svelte.config.js b/packages/package/test/fixtures/typescript/svelte.config.js index 6bd253bdf27d..8e74287e522a 100644 --- a/packages/package/test/fixtures/typescript/svelte.config.js +++ b/packages/package/test/fixtures/typescript/svelte.config.js @@ -1,5 +1,7 @@ import preprocess from 'svelte-preprocess'; export default { - preprocess: preprocess() + preprocess: preprocess({ + preserve: ['ld+json'] + }) };