This commit is contained in:
parent
f5973ba5a0
commit
52167fb3c9
4 changed files with 690 additions and 494 deletions
31
lib.ts
31
lib.ts
|
|
@ -22,7 +22,12 @@ export enum TripleBool {
|
|||
YES = 1,
|
||||
NO = 0
|
||||
}
|
||||
export interface Entry { name: string, url: string, credits: string, updated: TripleBool, links_work: TripleBool, best: boolean };
|
||||
|
||||
export type Change =
|
||||
| { op: "delete"; name: string }
|
||||
| { op: "create"; name: string; item: Entry }
|
||||
| { op: "update"; name: string; changes: Partial<Entry> };
|
||||
const TripleBoolStrings: Record<TripleBool, string> = {
|
||||
[TripleBool.MOSTLY]: "Mostly",
|
||||
[TripleBool.YES]: "Yes",
|
||||
|
|
@ -45,8 +50,32 @@ export function tripleBool(bool: string): TripleBool {
|
|||
throw new Error("tripleBool conversion function errored, mysteriously! Passed in: " + bool)
|
||||
}
|
||||
|
||||
export function prettyStringify(z: unknown) {
|
||||
return JSON.stringify(z, null, 2).replace(/\n {2}"/g, ' "').replace(/\n}/, " }")
|
||||
}
|
||||
|
||||
export function ndjsonToJson(ndjson: string): any[] {
|
||||
export function requireBasicAuth(req: Request): Response | null {
|
||||
const auth = req.headers.get("authorization");
|
||||
if (!auth || !auth.startsWith("Basic ")) {
|
||||
return new Response("Auth required", {
|
||||
status: 401,
|
||||
headers: { "WWW-Authenticate": 'Basic realm="acx-sheets"' }
|
||||
});
|
||||
}
|
||||
|
||||
const decoded = Buffer.from(auth.slice(6), "base64").toString("utf8");
|
||||
const [user, pass] = decoded.split(":");
|
||||
|
||||
if (
|
||||
user !== process.env.MERGE_USER ||
|
||||
pass !== process.env.MERGE_PASS
|
||||
) {
|
||||
return new Response("Forbidden", { status: 403 });
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
export function ndjsonToJson(ndjson: string): unknown[] {
|
||||
return ndjson.split("\n").map(z => {
|
||||
try {
|
||||
return JSON.parse(z)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue