1// SPDX-License-Identifier: 0BSD
2
3export function extractHeaderComments(code: string) {
4 const comments: string[] = [];
5
6const isConjuction = (info: Info): info is ConjunctionInfo => "conjuction" in info;
7
8export function parseLicenseInfo(code: string) {
9 const comments = extractHeaderComments(code);
10 const pragma = comments
16}
17
18export function formatLicenseInfo(info: Info, level = 0) {
19 if (!isConjuction(info)) {
20 let output = info.license;
3import { gfm as gfmMarkdown, gfmHtml } from "npm:micromark-extension-gfm";
4
5export function html(markdown: string) {
6 return micromark(markdown, {
7 extensions: [gfmMarkdown(), frontmatter()],
10}
11
12export async function gfm(markdown: string, options?: { title?: string; favicon?: string | URL }) {
13 const body = await html(markdown);
14 const faviconURL = new URL(options?.favicon ?? "📝", "https://fav.farm");
49};
50URL.revokeObjectURL(patchedModUrl);
51export default async function oldstyle(...args: Parameters<typeof String.raw>) {
52 const gen = tokens(String.raw(...args), { jsx: true });
53 const identifiers = new Set<string>();
1import { API_URL } from "https://esm.town/v/std/API_URL?v=5";
2export function getMainExport(
3 mod: any,
4 noneOkay?: boolean,
33 return mod[exports[0]];
34}
35export async function set(path: string, value: any) {
36 let resolveResp = await fetch(
37 `${API_URL}/v1/alias/${path}`,
1// SPDX-License-Identifier: 0BSD
2
3export function jsm(strings: TemplateStringsArray, ...values: any[]) {
4 const code = String.raw({ raw: strings }, ...values);
5 return createModuleURL(code, "application/javascript");
6}
7
8export function tsm(strings: TemplateStringsArray, ...values: any[]) {
9 const code = String.raw({ raw: strings }, ...values);
10 return createModuleURL(code, "application/typescript");
11}
12
13export function createModuleURL(code: BlobPart, type: string) {
14 const blob = new Blob([code], { type });
15 return URL.createObjectURL(blob);
18export default router.fetch;
19
20export async function createScreenshot(code: string, theme: string = "dark-plus"): Promise<URL> {
21 const apiUrl = "https://sourcecodeshots.com/api/image/permalink";
22 const { url } = await ky.post(apiUrl, {
29export default app.fetch;
30
31export async function fetchPackageData(scope: string, name: string) {
32 const prefixUrl = "https://api.jsr.io/";
33 const data = await ky.get(`scopes/${scope}/packages/${name}`, { prefixUrl }).json();
1// SPDX-License-Identifier: 0BSD
2
3export function toPairs<T>(seq: Iterable<T>): Iterable<[T, T]> {
4 const groupedPairs = Object.groupBy(seq, (_, index) => Math.floor(index / 2));
5 return Object.values(groupedPairs);
1// SPDX-License-Identifier: 0BSD
2export function createPacketReader({
3 packetStartMarker,
4 packetEndMarker,
9 packetStartMarker += "\n";
10
11 return function readPacket(input: string) {
12 input = input.trim();
13 let offset = input.indexOf(packetStartMarker);
23}
24
25export function createSignedPacketReader({
26 packetStartMarker,
27 signatureStartMarker,
35 signatureStartMarker += "\n";
36
37 return function readSignedPacket(input: string) {
38 input = input.trim();
39 let offset = input.indexOf(packetStartMarker);