diff --git a/.changeset/tall-experts-wait.md b/.changeset/tall-experts-wait.md new file mode 100644 index 000000000..45091b476 --- /dev/null +++ b/.changeset/tall-experts-wait.md @@ -0,0 +1,5 @@ +--- +'@web/rollup-plugin-html': patch +--- + +revert support transform on input html diff --git a/packages/rollup-plugin-html/src/output/createHTMLOutput.ts b/packages/rollup-plugin-html/src/output/createHTMLOutput.ts index 4f3c1f646..cb2224267 100644 --- a/packages/rollup-plugin-html/src/output/createHTMLOutput.ts +++ b/packages/rollup-plugin-html/src/output/createHTMLOutput.ts @@ -15,8 +15,7 @@ export interface CreateHTMLAssetParams { input: InputData; emittedAssets: EmittedAssets; generatedBundles: GeneratedBundle[]; - inputExternalTransformHtmlFns: TransformHtmlFunction[]; - outputExternalTransformHtmlFns: TransformHtmlFunction[]; + externalTransformHtmlFns: TransformHtmlFunction[]; pluginOptions: RollupPluginHTMLOptions; defaultInjectDisabled: boolean; serviceWorkerPath: string; @@ -31,8 +30,7 @@ export async function createHTMLAsset(params: CreateHTMLAssetParams): Promise; - inputExternalTransformHtmlFns?: TransformHtmlFunction[]; - outputExternalTransformHtmlFns?: TransformHtmlFunction[]; + externalTransformHtmlFns?: TransformHtmlFunction[]; defaultInjectDisabled: boolean; serviceWorkerPath: string; injectServiceWorker: boolean; @@ -32,8 +31,7 @@ export async function getOutputHTML(params: GetOutputHTMLParams) { const { pluginOptions, entrypointBundles, - inputExternalTransformHtmlFns, - outputExternalTransformHtmlFns, + externalTransformHtmlFns, input, outputDir, emittedAssets, @@ -46,20 +44,8 @@ export async function getOutputHTML(params: GetOutputHTMLParams) { const { default: defaultBundle, ...multiBundles } = entrypointBundles; const { absoluteSocialMediaUrls = true, rootDir = process.cwd() } = pluginOptions; - let inputHtml = input.html; - - // run transform functions on input HTML - const inputTransforms = [...(inputExternalTransformHtmlFns ?? [])]; - for (const transform of inputTransforms) { - inputHtml = await transform(inputHtml, { - bundle: defaultBundle, - bundles: multiBundles, - htmlFileName: input.name, - }); - } - // inject rollup output into HTML - let document = parse(inputHtml); + let document = parse(input.html); if (pluginOptions.extractAssets !== false) { injectedUpdatedAssetPaths({ document, @@ -89,17 +75,17 @@ export async function getOutputHTML(params: GetOutputHTMLParams) { let outputHtml = serialize(document); - const outputTransforms = [...(outputExternalTransformHtmlFns ?? [])]; + const transforms = [...(externalTransformHtmlFns ?? [])]; if (pluginOptions.transformHtml) { if (Array.isArray(pluginOptions.transformHtml)) { - outputTransforms.push(...pluginOptions.transformHtml); + transforms.push(...pluginOptions.transformHtml); } else { - outputTransforms.push(pluginOptions.transformHtml); + transforms.push(pluginOptions.transformHtml); } } // run transform functions on output HTML - for (const transform of outputTransforms) { + for (const transform of transforms) { outputHtml = await transform(outputHtml, { bundle: defaultBundle, bundles: multiBundles, diff --git a/packages/rollup-plugin-html/src/rollupPluginHTML.ts b/packages/rollup-plugin-html/src/rollupPluginHTML.ts index 7b2806ec1..ffe1a0880 100644 --- a/packages/rollup-plugin-html/src/rollupPluginHTML.ts +++ b/packages/rollup-plugin-html/src/rollupPluginHTML.ts @@ -18,10 +18,7 @@ import { emitAssets } from './output/emitAssets.js'; export interface RollupPluginHtml extends Plugin { api: { getInputs(): InputData[]; - addHtmlTransformer( - transformHtmlFunction: TransformHtmlFunction, - transformStage?: 'input' | 'output', - ): void; + addHtmlTransformer(transformHtmlFunction: TransformHtmlFunction): void; disableDefaultInject(): void; addOutput(name: string): Plugin; }; @@ -31,8 +28,7 @@ export function rollupPluginHTML(pluginOptions: RollupPluginHTMLOptions = {}): R const multiOutputNames: string[] = []; let inputs: InputData[] = []; let generatedBundles: GeneratedBundle[] = []; - let inputExternalTransformHtmlFns: TransformHtmlFunction[] = []; - let outputExternalTransformHtmlFns: TransformHtmlFunction[] = []; + let externalTransformHtmlFns: TransformHtmlFunction[] = []; let defaultInjectDisabled = false; let serviceWorkerPath = ''; let injectServiceWorker = false; @@ -42,8 +38,7 @@ export function rollupPluginHTML(pluginOptions: RollupPluginHTMLOptions = {}): R function reset() { inputs = []; generatedBundles = []; - inputExternalTransformHtmlFns = []; - outputExternalTransformHtmlFns = []; + externalTransformHtmlFns = []; } return { @@ -151,8 +146,7 @@ export function rollupPluginHTML(pluginOptions: RollupPluginHTMLOptions = {}): R inputs, emittedAssets, generatedBundles, - inputExternalTransformHtmlFns, - outputExternalTransformHtmlFns, + externalTransformHtmlFns, pluginOptions, defaultInjectDisabled, serviceWorkerPath, @@ -171,15 +165,8 @@ export function rollupPluginHTML(pluginOptions: RollupPluginHTMLOptions = {}): R return inputs; }, - addHtmlTransformer( - transformHtmlFunction: TransformHtmlFunction, - transformStage: 'input' | 'output' = 'output', - ) { - if (transformStage === 'input') { - inputExternalTransformHtmlFns.push(transformHtmlFunction); - } else { - outputExternalTransformHtmlFns.push(transformHtmlFunction); - } + addHtmlTransformer(transformHtmlFunction: TransformHtmlFunction) { + externalTransformHtmlFns.push(transformHtmlFunction); }, disableDefaultInject() { @@ -218,8 +205,7 @@ export function rollupPluginHTML(pluginOptions: RollupPluginHTMLOptions = {}): R inputs, emittedAssets, generatedBundles, - inputExternalTransformHtmlFns, - outputExternalTransformHtmlFns, + externalTransformHtmlFns, pluginOptions, defaultInjectDisabled, serviceWorkerPath, diff --git a/packages/rollup-plugin-html/test/rollup-plugin-html.test.ts b/packages/rollup-plugin-html/test/rollup-plugin-html.test.ts index dfb0c2784..7ccd949b0 100644 --- a/packages/rollup-plugin-html/test/rollup-plugin-html.test.ts +++ b/packages/rollup-plugin-html/test/rollup-plugin-html.test.ts @@ -626,16 +626,7 @@ describe('rollup-plugin-html', () => { return false; }); plugin!.api.addHtmlTransformer((html: string) => - html.replace('', ''), - ); - plugin!.api.addHtmlTransformer( - (html: string) => - html.replace('', ''), - 'output', - ); - plugin!.api.addHtmlTransformer( - (html: string) => html.replace('', ''), - 'input', + html.replace('', ''), ); }, } as Plugin, @@ -650,10 +641,9 @@ describe('rollup-plugin-html', () => { expect(entryB).to.include("console.log('entrypoint-b.js');"); expect(stripNewlines(getAsset(output, 'index.html').source)).to.equal( '

hello world

' + - '' + '' + '' + - '', + '', ); }); diff --git a/packages/rollup-plugin-html/test/src/output/getOutputHTML.test.ts b/packages/rollup-plugin-html/test/src/output/getOutputHTML.test.ts index b5cac9009..11cf7a7ed 100644 --- a/packages/rollup-plugin-html/test/src/output/getOutputHTML.test.ts +++ b/packages/rollup-plugin-html/test/src/output/getOutputHTML.test.ts @@ -105,14 +105,14 @@ describe('getOutputHTML()', () => { ); }); - it('can combine external and regular output transform functions', async () => { + it('can combine external and regular transform functions', async () => { const output = await getOutputHTML({ ...defaultOptions, pluginOptions: { ...defaultOptions.pluginOptions, transformHtml: html => html.replace('Input HTML', 'Transformed Input HTML'), }, - outputExternalTransformHtmlFns: [html => html.replace(/h1/g, 'h2')], + externalTransformHtmlFns: [html => html.replace(/h1/g, 'h2')], }); expect(output).to.equal(