import { Type } from "@sinclair/typebox"; import { FirRouteInput, FirRouteOptions } from "../util/routewrap.js"; import fs from "fs"; import git from "isomorphic-git"; import http from "isomorphic-git/http/node"; const method = "POST"; const url = "/api/release"; // const payloadT = Type.Object({ // png: Type.String(), // }); const payloadT = Type.Any(); const handler = async ({payload}: FirRouteInput) => { const {manifest, token} = payload; if (!fs.existsSync("./repos")) { fs.mkdirSync("./repos", {recursive: true}) } console.log(manifest); console.log("cloning..."); await git.clone({ fs, http, // headers: { // "Authorization": `Bearer ${token}`, // }, onAuth() { return { username: 'x-access-token', password: token, } }, dir: "./repos", url: manifest.repo, }); console.log("cloned"); const localManifest = JSON.parse(await fs.promises.readFile("./repos/picobook.json", "utf8")); console.log("read local manifest"); fs.promises.rm("./repos"); console.log({ manifest, localManifest, }); return true; }; export default { method, url, payloadT, handler, } as const satisfies FirRouteOptions;