Files
Robin Chappatte 5c36b2f7bc initial commit
2024-05-21 16:10:08 +02:00

845 B

Simplistic JSON database

  • Save / load all data from one JSON file
  • Automatically saves data after any modifications (create / update / delete)
  • Autoincremented ids

Usage

import { Database } from "./database.ts";
import { Table } from "./table.ts";

const database = await Database.load("./data.json", async (emptyDatabase) => {
  await emptyDatabase.createTable("foo");
  await emptyDatabase.createTable("bar");
  await emptyDatabase.createTable("baz");
});

const fooTable = await database.getTable("foo") as Table<{
  id: number;
  name: string;
}>;

const insertedEntry = await fooTable.insert({ name: "Hello world" });
const updatedEntries = await fooTable.update(
  (candidat) => candidat.id === insertedEntry.id,
  (entry) => entry.name = "Goodbye",
);
const deletedEntries = await fooTable.delete(() => true);