From 60bc2dfc75e4c6a5587f82249758477b8ecf00df Mon Sep 17 00:00:00 2001 From: akin01 Date: Sun, 5 Jul 2026 09:06:52 +0700 Subject: [PATCH] fix: silence email html validation false positives --- packages/solid-email/tsdown.config.ts | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/packages/solid-email/tsdown.config.ts b/packages/solid-email/tsdown.config.ts index ae76392..516a75f 100644 --- a/packages/solid-email/tsdown.config.ts +++ b/packages/solid-email/tsdown.config.ts @@ -1,5 +1,5 @@ import { defineConfig, type UserConfig } from 'tsdown'; -import solid from 'vite-plugin-solid'; +import solid, { type Options as SolidPluginOptions } from 'vite-plugin-solid'; const base: Pick = { dts: true, @@ -15,6 +15,18 @@ const base: Pick = { fixedExtension: true, }; +type SolidCompilerOptions = NonNullable & { + validate?: boolean; +}; + +const emailSolidCompilerOptions = { + // Solid's template validator assumes fragments will be parsed through + // innerHTML. Email components intentionally expose document-level + // , , and roots, which browsers normalize when parsed + // as fragments even though Solid's SSR output is the desired final HTML. + validate: false, +} satisfies SolidCompilerOptions; + export default defineConfig([ { ...base, @@ -26,6 +38,7 @@ export default defineConfig([ plugins: [ solid({ solid: { + ...emailSolidCompilerOptions, generate: 'ssr', hydratable: false, moduleName: 'solid-js/web/dist/server.js', @@ -44,6 +57,7 @@ export default defineConfig([ plugins: [ solid({ solid: { + ...emailSolidCompilerOptions, generate: 'dom', hydratable: false, },