wxt
Version:
⚡ Next-gen Web Extension Framework
26 lines (25 loc) • 976 B
JavaScript
//#region src/core/builders/vite/plugins/iifeFooter.ts
/**
* Add a footer with the returned value so it can return values to
* `scripting.executeScript` Footer is added a part of esbuild to make sure it's
* not minified. It get's removed if added to
* `build.rollupOptions.output.footer` See
* https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/scripting/executeScript#return_value
*/
function iifeFooter(iifeReturnValueName) {
return {
name: "wxt:iife-footer",
generateBundle(_, bundle) {
for (const chunk of Object.values(bundle)) if (chunk.type === "chunk" && chunk.isEntry) {
const code = chunk.code;
const marker = "\n//# sourceMappingURL=";
const returnValue = `${iifeReturnValueName};`;
const index = code.indexOf(marker);
if (index >= 0) chunk.code = code.slice(0, index + 1) + `${returnValue}\n` + code.slice(index + 1);
else chunk.code += `\n${returnValue}`;
}
}
};
}
//#endregion
export { iifeFooter };