UNPKG

@openscript/unplugin-favicons

Version:

Generate favicons for your project with caching for blazing fast rebuilds.

32 lines 1.62 kB
import findEmittedFile from "./utils/find-emitted-file.js"; /** * Provided a list of EmittedFile objects from Vite and an Android or Firefox * manifest's contents, updates each icon's source to reflect the final name * generated for the file by Vite. */ const updateManifest = (emittedImages, manifestContents) => { const parsedManifest = JSON.parse(manifestContents); // Handles Android's manifest format. if (Array.isArray(parsedManifest.icons)) { parsedManifest.icons = parsedManifest.icons.map((iconDescriptor) => { const correspondingFile = findEmittedFile(emittedImages, iconDescriptor.src); if (!correspondingFile) { throw new Error(`Unable to find a corresponding emitted file for manifest entry: ${iconDescriptor.src}`); } return { ...iconDescriptor, src: `/${correspondingFile.resolvedName}` }; }); // Handles Firefox's manifest format. } else if (typeof parsedManifest.icons === "object" && Object.keys(parsedManifest.icons).length > 0) { parsedManifest.icons = Object.fromEntries(Object.entries(parsedManifest.icons).map(([size, source]) => { const correspondingFile = findEmittedFile(emittedImages, source); if (!correspondingFile) { throw new Error(`Unable to find a corresponding emitted file for manifest entry: ${source}`); } return [size, `/${correspondingFile.resolvedName}`]; })); } return JSON.stringify(parsedManifest); }; export default updateManifest; //# sourceMappingURL=update-manifest.js.map