fix
This commit is contained in:
parent
ca925f4b26
commit
b1682f5ab9
|
|
@ -11,9 +11,8 @@ export const cache = {
|
|||
string,
|
||||
{
|
||||
type: string;
|
||||
content: ArrayBuffer;
|
||||
br?: Uint8Array;
|
||||
gz?: Uint8Array;
|
||||
content: ReadableStream<Uint8Array>;
|
||||
br?: ReadableStream<Uint8Array>;
|
||||
}
|
||||
>,
|
||||
};
|
||||
|
|
@ -100,7 +99,7 @@ export const createServer = async () => {
|
|||
if (!cache.static[url.pathname]) {
|
||||
cache.static[url.pathname] = {
|
||||
type: lookup(url.pathname) || "text/plain",
|
||||
content: await file.arrayBuffer(),
|
||||
content: file.stream(),
|
||||
};
|
||||
}
|
||||
const found = cache.static[url.pathname];
|
||||
|
|
@ -129,24 +128,6 @@ export const createServer = async () => {
|
|||
};
|
||||
|
||||
const responseCached = (req: Request, found: (typeof cache.static)[string]) => {
|
||||
const enc = req.headers.get("accept-encoding");
|
||||
if (enc && g.mode === "prod") {
|
||||
if (enc.includes("br") && found.br) {
|
||||
const res = new Response(found.br);
|
||||
res.headers.set("content-type", found.type);
|
||||
res.headers.set("content-encoding", "br");
|
||||
return res;
|
||||
} else if (enc.includes("gz")) {
|
||||
if (!found.gz) {
|
||||
found.gz = gzipSync(new Uint8Array(found.content));
|
||||
}
|
||||
const res = new Response(found.gz);
|
||||
res.headers.set("content-type", found.type);
|
||||
res.headers.set("content-encoding", "gzip");
|
||||
return res;
|
||||
}
|
||||
}
|
||||
|
||||
const res = new Response(found.content);
|
||||
res.headers.set("content-type", found.type);
|
||||
return res;
|
||||
|
|
|
|||
|
|
@ -21,61 +21,6 @@ export const parcelBuild = async () => {
|
|||
"--dist-dir",
|
||||
dir.path(`app/static`),
|
||||
];
|
||||
if (g.mode === "prod") {
|
||||
setTimeout(() => {
|
||||
inspectTreeAsync(dir.path("app/static")).then((tree) => {
|
||||
if (tree) {
|
||||
const walk = async (item: InspectTreeResult, parent: string[]) => {
|
||||
if (item.type === "file") {
|
||||
let path = `${parent.slice(1).join("/")}/${item.name}`;
|
||||
if (!path.startsWith("/")) path = `/${path}`;
|
||||
|
||||
if (!cache.static[path]) {
|
||||
const file = Bun.file(dir.path(`/app/static${path}`));
|
||||
cache.static[path] = {
|
||||
type: lookup(path) || "text/plain",
|
||||
content: await file.arrayBuffer(),
|
||||
};
|
||||
}
|
||||
const found = cache.static[path];
|
||||
|
||||
const staticBr = Bun.file(dir.path(`app/static-br${path}`));
|
||||
if (await staticBr.exists()) {
|
||||
found.br = new Uint8Array(await staticBr.arrayBuffer());
|
||||
} else {
|
||||
const pubFile = Bun.file(dir.path(`/app/web/public${path}`));
|
||||
const pubBr = Bun.file(dir.path(`/app/web/public-br${path}`));
|
||||
if (await pubFile.exists()) {
|
||||
if (await pubBr.exists()) {
|
||||
found.br = new Uint8Array(await pubBr.arrayBuffer());
|
||||
} else {
|
||||
found.br = brotli.compress(
|
||||
new Uint8Array(cache.static[path].content)
|
||||
);
|
||||
if (found.br) {
|
||||
await writeAsync(
|
||||
dir.path(`/app/web/public-br${path}`),
|
||||
Buffer.from(found.br)
|
||||
);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
found.br = brotli.compress(
|
||||
new Uint8Array(cache.static[path].content)
|
||||
);
|
||||
}
|
||||
}
|
||||
} else if (item.type === "dir") {
|
||||
for (const child of item.children) {
|
||||
await walk(child, [...parent, item.name]);
|
||||
}
|
||||
}
|
||||
};
|
||||
walk(tree, []);
|
||||
}
|
||||
});
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
if (g.mode === "dev") {
|
||||
g.log.info(`Building web with parcel`);
|
||||
|
|
|
|||
Loading…
Reference in New Issue