From ab5295e9bffd30a7fe2a81d64c33a4bcd466dd2d Mon Sep 17 00:00:00 2001 From: Thomas Allmer Date: Tue, 16 Aug 2022 22:32:01 +0200 Subject: [PATCH] feat(rollup-plugin-html): support video source tags as assets --- .changeset/great-hounds-clean.md | 11 +++++ .../rollup-plugin-html/src/assets/utils.ts | 8 +++- .../assets/videos/typer-hydration.mp4 | Bin 0 -> 50425 bytes .../output/injectedUpdatedAssetPaths.test.ts | 44 ++++++++++++++++++ 4 files changed, 61 insertions(+), 2 deletions(-) create mode 100644 .changeset/great-hounds-clean.md create mode 100644 packages/rollup-plugin-html/test/fixtures/assets/videos/typer-hydration.mp4 diff --git a/.changeset/great-hounds-clean.md b/.changeset/great-hounds-clean.md new file mode 100644 index 000000000..3d247da6b --- /dev/null +++ b/.changeset/great-hounds-clean.md @@ -0,0 +1,11 @@ +--- +'@web/rollup-plugin-html': minor +--- + +Detect `` tags as assets which means videos get copied and hashed. + +```html + +``` diff --git a/packages/rollup-plugin-html/src/assets/utils.ts b/packages/rollup-plugin-html/src/assets/utils.ts index 430ff82d9..665f65ba3 100644 --- a/packages/rollup-plugin-html/src/assets/utils.ts +++ b/packages/rollup-plugin-html/src/assets/utils.ts @@ -34,7 +34,11 @@ function isAsset(node: Element) { path = getAttribute(node, 'src') ?? ''; break; case 'source': - path = extractFirstUrlOfSrcSet(node) ?? ''; + if (getAttribute(node, 'src')) { + path = getAttribute(node, 'src') ?? ''; + } else { + path = extractFirstUrlOfSrcSet(node) ?? ''; + } break; case 'link': if (linkRels.includes(getAttribute(node, 'rel') ?? '')) { @@ -104,7 +108,7 @@ export function getSourceAttribute(node: Element) { return 'src'; } case 'source': { - return 'srcset'; + return getAttribute(node, 'src') ? 'src' : 'srcset'; } case 'link': { return 'href'; diff --git a/packages/rollup-plugin-html/test/fixtures/assets/videos/typer-hydration.mp4 b/packages/rollup-plugin-html/test/fixtures/assets/videos/typer-hydration.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..53176ab71ce9e82ea0f93cc49221a9c32f8044e9 GIT binary patch literal 50425 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

eG)#8_j^M9 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 TY_E;qVHtUGIazTjNy+~QkK3|- literal 0 HcmV?d00001 diff --git a/packages/rollup-plugin-html/test/src/output/injectedUpdatedAssetPaths.test.ts b/packages/rollup-plugin-html/test/src/output/injectedUpdatedAssetPaths.test.ts index eb4b48f97..353a6399a 100644 --- a/packages/rollup-plugin-html/test/src/output/injectedUpdatedAssetPaths.test.ts +++ b/packages/rollup-plugin-html/test/src/output/injectedUpdatedAssetPaths.test.ts @@ -120,6 +120,50 @@ describe('injectedUpdatedAssetPaths()', () => { expect(serialize(document).replace(/ {4}/g, '\n')).to.eql(expected); }); + it('handles video tag using source tags with src', () => { + const document = parse( + [ + '', + ' ', + ' ', + ' ', + '', + ].join(''), + ); + + const input: InputData = { + html: '', + name: 'index.html', + moduleImports: [], + inlineModules: [], + assets: [], + filePath: '/root/index.html', + }; + const hashed = new Map(); + hashed.set( + path.join(path.sep, 'root', 'videos', 'typer-hydration.mp4'), + 'typer-hydration-xxx.mp4', + ); + + injectedUpdatedAssetPaths({ + document, + input, + outputDir: '/root/dist/', + rootDir: '/root/', + emittedAssets: { static: new Map(), hashed }, + }); + + const expected = [ + '', + ' ', + ].join('\n'); + expect(serialize(document).replace(/ {4}/g, '\n')).to.eql(expected); + }); + it('handles virtual files', () => { const document = parse( [