UNPKG

plxnner

Version:

An elegant open-source planner for Instagram

59 lines (49 loc) 1.48 kB
import { openDB } from "idb" import UserConfig from "./userConfig.class" export default class UserLoader { /** * Load users from local config */ static async loadUsersFromConfig() { const userStore = useUserStore() const rawUsers = await UserConfig.getUsersConfig() // for each user defined in the root config.json for await (const rawUser of rawUsers) { await userStore.loadUser(rawUser) } return true } /** * Load users from local forage * (usernames are stored in local storage) */ static async loadUsersFromStorage() { const userStorageStore = useUserStorageStore() for (const tempUserReference of userStorageStore.users) { await UserLoader.restoreUserFromStorage(tempUserReference) } } /** * Restore user from local forage * * @param tempUserReference */ static async restoreUserFromStorage(tempUserReference: ITempUserReference) { const userStore = useUserStore() const userStorageStore = useUserStorageStore() const userStorage = await openDB("planner", 1) const rawUser = await userStorage.get( tempUserReference.platform, tempUserReference.username ) rawUser.platform = tempUserReference.platform rawUser.origin = 'storage' if (rawUser) { await userStore.loadUser(rawUser) } else { // something happened, // it no longer exists userStorageStore.removeUserFromStorageIndex(tempUserReference) } } }