diff --git a/src/plugins/sources-plugin.js b/src/plugins/sources-plugin.js index 77480eb9..1f39c044 100644 --- a/src/plugins/sources-plugin.js +++ b/src/plugins/sources-plugin.js @@ -41,9 +41,10 @@ export default (options) => name = attribute.prefix ? `${attribute.prefix}:${name}` : name; - const handlers = - options.sources.list.get(tagName.toLowerCase()) || - options.sources.list.get("*"); + const handlers = new Map([ + ...(options.sources.list.get("*") || new Map()), + ...(options.sources.list.get(tagName.toLowerCase()) || new Map()), + ]); if (!handlers) { return; diff --git a/test/__snapshots__/sources-option.test.js.snap b/test/__snapshots__/sources-option.test.js.snap index a93b65d4..bd4b3d41 100644 --- a/test/__snapshots__/sources-option.test.js.snap +++ b/test/__snapshots__/sources-option.test.js.snap @@ -3307,6 +3307,525 @@ ANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4 exports[`'sources' option should not handle sources with a "boolean" notation equals "false": warnings 1`] = `Array []`; +exports[`'sources' option should process attributes specific to a tag and attributes for any tag: errors 1`] = `Array []`; + +exports[`'sources' option should process attributes specific to a tag and attributes for any tag: module 1`] = ` +"// Imports +import ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___ from \\"../../src/runtime/getUrl.js\\"; +var ___HTML_LOADER_IMPORT_0___ = new URL(\\"./image.png\\", import.meta.url); +var ___HTML_LOADER_IMPORT_1___ = new URL(\\"/image.png\\", import.meta.url); +var ___HTML_LOADER_IMPORT_2___ = new URL(\\"aliasImg\\", import.meta.url); +var ___HTML_LOADER_IMPORT_3___ = new URL(\\"./script.file.js\\", import.meta.url); +var ___HTML_LOADER_IMPORT_4___ = new URL(\\"./icons.svg\\", import.meta.url); +var ___HTML_LOADER_IMPORT_5___ = new URL(\\"./image.png?foo=bar,baz\\", import.meta.url); +var ___HTML_LOADER_IMPORT_6___ = new URL(\\"./image.png?bar=baz,foo\\", import.meta.url); +var ___HTML_LOADER_IMPORT_7___ = new URL(\\"./example.ogg\\", import.meta.url); +var ___HTML_LOADER_IMPORT_8___ = new URL(\\"./example.pdf\\", import.meta.url); +var ___HTML_LOADER_IMPORT_9___ = new URL(\\"./example.vtt\\", import.meta.url); +var ___HTML_LOADER_IMPORT_10___ = new URL(\\"./style.file.css\\", import.meta.url); +var ___HTML_LOADER_IMPORT_11___ = new URL(\\"./image image.png\\", import.meta.url); +var ___HTML_LOADER_IMPORT_12___ = new URL(\\"./module.file.js\\", import.meta.url); +var ___HTML_LOADER_IMPORT_13___ = new URL(\\"./fallback.file.js\\", import.meta.url); +var ___HTML_LOADER_IMPORT_14___ = new URL(\\"aliasImageWithSpace\\", import.meta.url); +var ___HTML_LOADER_IMPORT_15___ = new URL(\\"./webpack.svg\\", import.meta.url); +var ___HTML_LOADER_IMPORT_16___ = new URL(\\"./pixel.png?url\\", import.meta.url); +var ___HTML_LOADER_IMPORT_17___ = new URL(\\"./site.webmanifest\\", import.meta.url); +var ___HTML_LOADER_IMPORT_18___ = new URL(\\"./browserconfig.xml\\", import.meta.url); +var ___HTML_LOADER_IMPORT_19___ = new URL(\\"./favicon.ico\\", import.meta.url); +var ___HTML_LOADER_IMPORT_20___ = new URL(\\"./sound.mp3\\", import.meta.url); +var ___HTML_LOADER_IMPORT_21___ = new URL(\\"./video.mp4\\", import.meta.url); +var ___HTML_LOADER_IMPORT_22___ = new URL(\\"./nested/image3.png\\", import.meta.url); +var ___HTML_LOADER_IMPORT_23___ = new URL(\\"/nested/image3.png\\", import.meta.url); +// Module +var ___HTML_LOADER_REPLACEMENT_0___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___); +var ___HTML_LOADER_REPLACEMENT_1___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___, { maybeNeedQuotes: true }); +var ___HTML_LOADER_REPLACEMENT_2___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_1___); +var ___HTML_LOADER_REPLACEMENT_3___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_2___); +var ___HTML_LOADER_REPLACEMENT_4___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_3___); +var ___HTML_LOADER_REPLACEMENT_5___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_4___, { hash: \\"#icon-chevron-with-circle-up\\" }); +var ___HTML_LOADER_REPLACEMENT_6___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_5___); +var ___HTML_LOADER_REPLACEMENT_7___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_6___); +var ___HTML_LOADER_REPLACEMENT_8___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_7___); +var ___HTML_LOADER_REPLACEMENT_9___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_8___); +var ___HTML_LOADER_REPLACEMENT_10___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_9___); +var ___HTML_LOADER_REPLACEMENT_11___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_10___); +var ___HTML_LOADER_REPLACEMENT_12___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_11___); +var ___HTML_LOADER_REPLACEMENT_13___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_12___); +var ___HTML_LOADER_REPLACEMENT_14___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_13___); +var ___HTML_LOADER_REPLACEMENT_15___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_14___, { maybeNeedQuotes: true }); +var ___HTML_LOADER_REPLACEMENT_16___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_14___); +var ___HTML_LOADER_REPLACEMENT_17___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___, { hash: \\"#hash\\" }); +var ___HTML_LOADER_REPLACEMENT_18___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___, { hash: \\"#hash\\", maybeNeedQuotes: true }); +var ___HTML_LOADER_REPLACEMENT_19___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___, { hash: \\"#\\", maybeNeedQuotes: true }); +var ___HTML_LOADER_REPLACEMENT_20___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___, { hash: \\"#foo\\" }); +var ___HTML_LOADER_REPLACEMENT_21___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___, { hash: \\"#bar\\" }); +var ___HTML_LOADER_REPLACEMENT_22___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_0___, { hash: \\"#baz\\" }); +var ___HTML_LOADER_REPLACEMENT_23___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_14___, { hash: \\"#hash\\", maybeNeedQuotes: true }); +var ___HTML_LOADER_REPLACEMENT_24___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_15___); +var ___HTML_LOADER_REPLACEMENT_25___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_16___); +var ___HTML_LOADER_REPLACEMENT_26___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_17___); +var ___HTML_LOADER_REPLACEMENT_27___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_18___); +var ___HTML_LOADER_REPLACEMENT_28___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_19___); +var ___HTML_LOADER_REPLACEMENT_29___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_20___); +var ___HTML_LOADER_REPLACEMENT_30___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_21___); +var ___HTML_LOADER_REPLACEMENT_31___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_22___); +var ___HTML_LOADER_REPLACEMENT_32___ = ___HTML_LOADER_GET_SOURCE_FROM_IMPORT___(___HTML_LOADER_IMPORT_23___); +var code = \\"\\\\n\\\\n
My first paragraph.
\\\\n