import * as path from "path"; import { promises as fs } from "fs"; export async function loadAppConfig() { const packageJson = await loadPackageJson(); const appName = process.env.TIME_SAFARI_APP_TITLE || packageJson.name; return { pwaConfig: { registerType: "autoUpdate", strategies: "injectManifest", srcDir: ".", filename: "sw_scripts-combined.js", manifest: { name: appName, short_name: appName, icons: [ { src: "./img/icons/android-chrome-192x192.png", sizes: "192x192", type: "image/png", }, { src: "./img/icons/android-chrome-512x512.png", sizes: "512x512", type: "image/png", }, { src: "./img/icons/android-chrome-maskable-192x192.png", sizes: "192x192", type: "image/png", purpose: "maskable", }, { src: "./img/icons/android-chrome-maskable-512x512.png", sizes: "512x512", type: "image/png", purpose: "maskable", }, ], share_target: { action: "/share-target", method: "POST", enctype: "multipart/form-data", params: { files: [ { name: "photo", accept: ["image/*"], }, ], }, }, }, }, aliasConfig: { "@": path.resolve(__dirname, ".."), buffer: path.resolve(__dirname, "node_modules", "buffer"), "dexie-export-import/dist/import": "dexie-export-import/dist/import/index.js", }, }; } async function loadPackageJson() { const packageJsonPath = path.resolve(__dirname, "package.json"); const packageJsonData = await fs.readFile(packageJsonPath, "utf-8"); return JSON.parse(packageJsonData); }