2019-02-05 00:21:50 +01:00
|
|
|
import Network from "./network.js";
|
|
|
|
import Session from "./session.js";
|
2019-02-06 23:04:39 +01:00
|
|
|
import createIdbStorage from "./storage/idb/create.js";
|
2019-02-04 23:31:08 +01:00
|
|
|
const HOMESERVER = "http://localhost:8008";
|
|
|
|
|
|
|
|
async function getLoginData(username, password) {
|
|
|
|
const storedCredentials = localStorage.getItem("morpheus_login");
|
|
|
|
if (!storedCredentials) {
|
|
|
|
const api = new Network(HOMESERVER);
|
2019-02-06 23:06:33 +01:00
|
|
|
const loginData = await api.passwordLogin(username, password).response();
|
2019-02-04 23:31:08 +01:00
|
|
|
localStorage.setItem("morpheus_login", JSON.stringify(loginData));
|
|
|
|
return loginData;
|
|
|
|
} else {
|
|
|
|
return JSON.parse(storedCredentials);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
async function main() {
|
|
|
|
const loginData = await getLoginData("bruno1", "testtest");
|
|
|
|
const network = new Network(HOMESERVER, loginData.access_token);
|
2019-02-05 00:21:50 +01:00
|
|
|
const storage = await createIdbStorage("morpheus_session");
|
2019-02-04 23:31:08 +01:00
|
|
|
const session = new Session(loginData, storage);
|
|
|
|
await session.load();
|
|
|
|
const sync = new Sync(network, session, storage);
|
|
|
|
await sync.start();
|
|
|
|
|
|
|
|
sync.on("error", err => {
|
|
|
|
console.error("sync error", err);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
main().catch(err => console.error(err));
|