26 lines
819 B
JavaScript
26 lines
819 B
JavaScript
import { parse } from "pb-parser";
|
|
import { base_url } from "./utils";
|
|
async function font_metadata_folder(folder, font, mirror) {
|
|
let url = base_url(mirror, folder, font) + "/METADATA.pb";
|
|
try {
|
|
let response = await (await fetch(url));
|
|
if (response.ok) {
|
|
return [url, await response.text()];
|
|
}
|
|
return null;
|
|
}
|
|
catch (e) {
|
|
return null;
|
|
}
|
|
}
|
|
export async function retrieve_font_metadata(font, mirror) {
|
|
let fontname = font.replace(" ", "").toLowerCase();
|
|
let [url, raw_metadata] = (await font_metadata_folder("ofl", fontname, mirror))
|
|
|| (await font_metadata_folder("ufl", fontname, mirror))
|
|
|| (await font_metadata_folder("apache", fontname, mirror));
|
|
return {
|
|
url,
|
|
metadata: parse(raw_metadata)
|
|
};
|
|
}
|