blob: 6dcb65a3e1a35b86cd4cb125f040de4f12b3d105 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
import * as zip from "@zip-js/zip-js";
import { Page, PipelineStageError } from "corvos";
import { binaryLoader } from "corvos/core/loaders/binary.ts";
import { strapiLoader } from "$/deps/strapi.tsx";
import { releaseStrapiSchema } from "$/schemas/releases.ts";
import site from "@/corvos.config.ts";
export const pages = site.$.pageGenerator(async function* () {
for await (const item of strapiLoader.loadCollection("corvos-releases", releaseStrapiSchema, {
"populate[0]": "files",
"sort[0]": "date:desc",
})) {
if (item instanceof PipelineStageError) {
yield item;
continue;
}
const res = await binaryLoader(new URL(item.files.url));
const reader = new zip.ZipReader(new zip.Uint8ArrayReader(res.content));
for await (const entry of reader.getEntriesGenerator()) {
if (entry.directory) {
continue;
}
yield new Page(
".",
new Uint8Array(await entry.arrayBuffer()),
{ version: item.version },
`/pkg/corvos@${item.version}/${entry.filename}`,
);
}
}
});
|