|
|
|
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);
|
|
|
|
}
|