import react from "@vitejs/plugin-react"; import { resolve } from "path"; import { ManifestV3Export } from "@crxjs/vite-plugin"; import tailwindcss from "@tailwindcss/vite"; import { defineConfig, BuildOptions } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; import { stripDevIcons, crxI18n } from "./custom-vite-plugins"; import manifest from "./manifest.json"; import devManifest from "./manifest.dev.json"; import pkg from "./package.json"; import { ProviderList } from "./src/providers/provider.list"; const isDev = process.env.NODE_ENV === "development"; // set this flag to true, if you want localization support const localize = false; const merge = isDev ? devManifest : ({} as ManifestV3Export); const { matches, ...rest } = manifest?.content_scripts?.[0] || {}; export const baseManifest = { ...manifest, host_permissions: [ ...ProviderList.map((p) => p.baseUrl + "/"), isDev ? "http://localhost:4200/" : "https://platform.postiz.com/", ], permissions: [...(manifest.permissions || [])], content_scripts: [ { matches: ProviderList.reduce( (all, p) => [...all, p.baseUrl + "/*"], [ isDev ? "http://localhost:4200/*" : "https://platform.postiz.com/*", ], ), ...rest, }, ], version: pkg.version, ...merge, ...(localize ? { name: "__MSG_extName__", description: "__MSG_extDescription__", default_locale: "en", } : {}), } as ManifestV3Export; export const baseBuildOptions: BuildOptions = { sourcemap: isDev, emptyOutDir: !isDev, }; export default defineConfig({ envPrefix: ["NEXT_PUBLIC_", "FRONTEND_URL"], plugins: [ tailwindcss(), tsconfigPaths(), react(), stripDevIcons(isDev), crxI18n({ localize, src: "./src/locales" }), ], publicDir: resolve(__dirname, "public"), });