UNPKG

timer-db

Version:

A library for cubing timer results storage with CouchDB-based synchronization.

33 lines (28 loc) 1.02 kB
import { EventName, StoredAttempt, Attempt } from "./data/Attempt"; import { PouchDBStorage } from "./storage/PouchDBStorage"; import { Session, SessionCreationOptions } from "./Session"; import { Storage } from "./storage/Storage"; export class TimerDB { private storage: Storage; constructor() { this.storage = new PouchDBStorage(); } startSync(params: { username: string; password: string }): void { this.storage.connectRemoteDB(params.username, params.password); } // TODO: provide a way to get only sessions with solves. async getSessions(): Promise<Session[]> { const sessionMetadataList = await this.storage.getAllSessions(); return sessionMetadataList.map( (sessionMetadata) => new Session(this.storage, sessionMetadata) ); } // TODO: `event: EventName` async createSession( sessionName: string, event: EventName, options?: SessionCreationOptions ): Promise<Session> { return await Session.create(this.storage, sessionName, event, options); } }