timer-db
Version:
A library for cubing timer results storage with CouchDB-based synchronization.
50 lines (34 loc) • 1.36 kB
Markdown
# `timer-db`
A JavaScript cubing timer database, with:
- An API designed for cubing timers.
- Fast local storage (works offline).
- Simple server sync (using [PouchDB](https://pouchdb.com/)).
# Basic Usage
Install with `npm install timer-db` and use like this:
```js
import { TimerDB } from "timer-db";
async function demo() {
const timerDB = new TimerDB();
const sessions = await timerDB.getSessions();
// Use an existing session, or create a new one.
const s =
sessions[0] ?? (await timerDB.createSession("My 3x3x3 Solves", "3x3x3"));
s.addStatListener(console.log);
s.add({
resultTotalMs: 7080,
unixDate: Date.now(),
});
}
demo();
```
## Sync with Server
```js
timerDB.startSync({
username: "[username]",
password: "[password]",
});
```
You can use this with any CouchDB-compatible instance. There's a test server available; Contact [Lucas Garron](https://garron.net/) for an account!
## License
This project is licensed under the GPL license (version 3 or later). This means that this library is **free to use**, although you **must publish any code that uses it** (e.g. also put it on GitHub). See [the full license](./LICENSE.md) for exact details.
We've selected this license in order to encourage the cubing community to work on software in a way so that everyone can contribute and extend each other's work.