export async function init(name='.git') : Promise<DB> { const database = await idb.open(name, 1, db => { db.createObjectStore("objects", {keyPath: "hash"}); db.createObjectStore("refs", {keyPath: "path"}); db.createObjectStore("metadata", {keyPath: "name"}); }); return database; }
readonly repo : string readonly name : string } const THE_YEAR_2000 = new Date(2000, 1); const THE_YEAR_2100 = new Date(2100, 1); const _db = idb.open('ekkiog', 12, db => { switch(db.oldVersion){ case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: case 8: case 9: case 10: upgradeFrom10(db); case 11: upgradeFrom11(db); } }); const _repo = _db.then(db => new Repo({}, db)); const user = getUser(); export async function create(name : string, forest : Forest) : Promise<string> { const repo = await _repo; const hash = await repo.save(name, forest, `Created ${name}`, user);