Fix PWA bug
This commit is contained in:
parent
5bad4d42d9
commit
8f6586ed37
2 changed files with 19 additions and 10 deletions
|
@ -12,7 +12,7 @@ import process from "process";
|
||||||
import serialize from "serialize-javascript";
|
import serialize from "serialize-javascript";
|
||||||
import sharp from "sharp";
|
import sharp from "sharp";
|
||||||
import { App } from "../shared/components/app/app";
|
import { App } from "../shared/components/app/app";
|
||||||
import { getHttpBase, getHttpBaseInternal } from "../shared/env";
|
import { getHttpBaseExternal, getHttpBaseInternal } from "../shared/env";
|
||||||
import {
|
import {
|
||||||
ILemmyConfig,
|
ILemmyConfig,
|
||||||
InitialFetchRequest,
|
InitialFetchRequest,
|
||||||
|
@ -65,7 +65,13 @@ Disallow: /search/
|
||||||
|
|
||||||
server.get("/service-worker.js", async (_req, res) => {
|
server.get("/service-worker.js", async (_req, res) => {
|
||||||
res.setHeader("Content-Type", "application/javascript");
|
res.setHeader("Content-Type", "application/javascript");
|
||||||
res.sendFile(path.resolve("./dist/service-worker.js"));
|
res.sendFile(
|
||||||
|
path.resolve(
|
||||||
|
`./dist/service-worker${
|
||||||
|
process.env.NODE_ENV === "development" ? "-development" : ""
|
||||||
|
}.js`
|
||||||
|
)
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
server.get("/robots.txt", async (_req, res) => {
|
server.get("/robots.txt", async (_req, res) => {
|
||||||
|
@ -237,7 +243,7 @@ process.on("SIGINT", () => {
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
});
|
});
|
||||||
|
|
||||||
const iconSizes = [72, 96, 128, 144, 152, 192, 384, 512];
|
const iconSizes = [72, 96, 144, 192, 512];
|
||||||
const defaultLogoPathDirectory = path.join(
|
const defaultLogoPathDirectory = path.join(
|
||||||
process.cwd(),
|
process.cwd(),
|
||||||
"dist",
|
"dist",
|
||||||
|
@ -246,11 +252,8 @@ const defaultLogoPathDirectory = path.join(
|
||||||
);
|
);
|
||||||
|
|
||||||
export async function generateManifestBase64(site: Site) {
|
export async function generateManifestBase64(site: Site) {
|
||||||
const url = (
|
const url = getHttpBaseExternal();
|
||||||
process.env.NODE_ENV === "development"
|
|
||||||
? "http://localhost:1236/"
|
|
||||||
: getHttpBase()
|
|
||||||
).replace(/\/$/g, "");
|
|
||||||
const icon = site.icon ? await fetchIconPng(site.icon) : null;
|
const icon = site.icon ? await fetchIconPng(site.icon) : null;
|
||||||
|
|
||||||
const manifest = {
|
const manifest = {
|
||||||
|
@ -378,9 +381,9 @@ async function createSsrHtml(root: string, isoData: IsoDataOptionalSite) {
|
||||||
site &&
|
site &&
|
||||||
`<link
|
`<link
|
||||||
rel="manifest"
|
rel="manifest"
|
||||||
href={${`data:application/manifest+json;base64,${await generateManifestBase64(
|
href=${`data:application/manifest+json;base64,${await generateManifestBase64(
|
||||||
site.site_view.site
|
site.site_view.site
|
||||||
)}`}}
|
)}`}
|
||||||
/>`
|
/>`
|
||||||
}
|
}
|
||||||
<link rel="apple-touch-icon" href=${appleTouchIcon} />
|
<link rel="apple-touch-icon" href=${appleTouchIcon} />
|
||||||
|
|
|
@ -41,9 +41,15 @@ function getBaseLocal(s = "") {
|
||||||
export function getHttpBaseInternal() {
|
export function getHttpBaseInternal() {
|
||||||
return getBaseLocal(); // Don't use secure here
|
return getBaseLocal(); // Don't use secure here
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getHttpBaseExternal() {
|
||||||
|
return `http${getSecure()}://${getExternalHost()}`;
|
||||||
|
}
|
||||||
|
|
||||||
export function getHttpBase() {
|
export function getHttpBase() {
|
||||||
return getBaseLocal(getSecure());
|
return getBaseLocal(getSecure());
|
||||||
}
|
}
|
||||||
|
|
||||||
export function isHttps() {
|
export function isHttps() {
|
||||||
return getSecure() === "s";
|
return getSecure() === "s";
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue