vite-plugin-office-addin-bun
Version:
Office Add-ins development using Vite with Bun and Node.js support. Based on vite-plugin-office-addin by Jozef Izso.
2 lines (1 loc) • 1.14 kB
JavaScript
import{loadEnv as l}from"vite";var a=typeof Bun<"u",f=/[\\/]/;async function u(...e){if(a&&Bun.resolveSync){let{join:n}=await import("node:path");return Bun.resolveSync(n(...e),process.cwd())}let{resolve:t}=await import("node:path");return t(...e)}function d(e){return e.split(f).at(-1)||""}async function m(e){if(a)return Bun.file(e).exists();try{let{access:t}=await import("node:fs/promises");return await t(e),!0}catch{return!1}}async function g(e){try{if(a)return await Bun.file(e).text();let{readFile:t}=await import("node:fs/promises");return await t(e,"utf-8")}catch(t){let n=t instanceof Error?t.message:String(t);throw new Error(`Failed to read file '${e}': ${n}`)}}function p(e){let t=e?.path??"manifest.xml",n,i;return{name:"office-addin-bun:manifest",configResolved(r){n=r,i=l(n.mode,process.cwd(),"ADDIN")},async generateBundle(){let r=await u(n.root,t);if(!await m(r))throw new Error(`The manifest.xml file does not exist at path: '${r}'`);let s=e?.devUrl||i.ADDIN_DEV_URL,c=e?.prodUrl||i.ADDIN_PROD_URL,o=await g(r);s&&s!==""&&c&&(o=o.replaceAll(s,c)),this.emitFile({type:"asset",fileName:d(r),source:o})}}}export{p as default};