import { defineConfig } from "vite"; import optimizer from "vite-plugin-optimizer"; import { nodePolyfills } from "vite-plugin-node-polyfills"; import { resolve } from "path"; const config = {}; ["background", "bootloader", "bridge", "crypto", "cryptoLoader"].forEach( (item) => { config[item] = { entry: resolve(__dirname, `./src/main/${item}.ts`), fileName: item, }; }, ); const currentConfig = config[process.env.LIB_NAME]; if (currentConfig === undefined) { throw new Error("LIB_NAME is not defined or is not valid"); } export default defineConfig({ build: { outDir: "lib", emptyOutDir: false, lib: { formats: ["umd"], ...currentConfig, name: currentConfig.fileName, }, minify: false, rollupOptions: { output: { inlineDynamicImports: true } }, }, resolve: { dedupe: ["@lumeweb/libportal", "@lumeweb/libweb", "@lumeweb/libkernel"], }, plugins: [ optimizer({ "node-fetch": "const e = undefined; export default e;export {e as Response, e as FormData, e as Blob};", }), nodePolyfills({ exclude: ["fs"], globals: { Buffer: true, global: true, process: true }, }), ], });