summaryrefslogtreecommitdiffhomepage
path: root/js/src/storage
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/storage')
-rw-r--r--js/src/storage/storage.ts55
1 files changed, 0 insertions, 55 deletions
diff --git a/js/src/storage/storage.ts b/js/src/storage/storage.ts
deleted file mode 100644
index 983b7e0f9..000000000
--- a/js/src/storage/storage.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import { FileStorage } from "@flystorage/file-storage";
-import { LocalStorageAdapter } from "@flystorage/local-fs";
-import fs from "fs/promises";
-import { Log } from "../util/log";
-import { App } from "../app/app";
-import { AppPath } from "../app/path";
-import { Bus } from "../bus";
-import z from "zod";
-
-export namespace Storage {
- const log = Log.create({ service: "storage" });
-
- export const Event = {
- Write: Bus.event(
- "storage.write",
- z.object({ key: z.string(), content: z.any() }),
- ),
- };
-
- const state = App.state("storage", async () => {
- const app = await App.use();
- const storageDir = AppPath.storage(app.root);
- await fs.mkdir(storageDir, { recursive: true });
- const storage = new FileStorage(new LocalStorageAdapter(storageDir));
- log.info("created", { path: storageDir });
- return {
- storage,
- };
- });
-
- export async function readJSON<T>(key: string) {
- const storage = await state().then((x) => x.storage);
- const data = await storage.readToString(key + ".json");
- return JSON.parse(data) as T;
- }
-
- export async function writeJSON<T>(key: string, content: T) {
- const storage = await state().then((x) => x.storage);
- const json = JSON.stringify(content);
- await storage.write(key + ".json", json);
- Bus.publish(Event.Write, { key, content });
- }
-
- export async function* list(prefix: string) {
- try {
- const storage = await state().then((x) => x.storage);
- const list = storage.list(prefix);
- for await (const item of list) {
- yield item.path.slice(0, -5);
- }
- } catch {
- return;
- }
- }
-}