1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { runFunesUpdate } from "https://esm.town/v/octref/runFunesUpdate";
import { updateGHContent } from "https://esm.town/v/octref/updateGHContent";
import { ghContent2 } from "https://esm.town/v/octref/ghContent2";
export async function handleISBNBook(req: express.Request, res: express.Response) {
const ISBN_PATH = "data/mine/books-isbn.json";
const { content, sha } = await ghContent2(ISBN_PATH);
const books = JSON.parse(content);
books.unshift({
isbn: req.query.isbn,
events: [
{
time: new Date().toISOString().split("T")[0],
type: "todo",
},
],
});
const newContent = JSON.stringify(books, null, 2);
await updateGHContent(ISBN_PATH, newContent, sha);
await runFunesUpdate();
return res.send(`<pre><code>${newContent}</code></pre>`);
}
👆 This is a val. Vals are TypeScript snippets of code, written in the browser and run on our servers. Create scheduled functions, email yourself, and persist small pieces of data — all from the browser.