@eotl/core
Version:
Assortment of data structures, Vue.js components, and utilities across EOTL apps and sites.
56 lines (55 loc) • 1.27 kB
JavaScript
import { defineStore } from "pinia";
import "vue";
import { ssrIdentity } from "@eotl/simple-signed-records";
const prefix = "eotl_";
function readStorage(key, initialize) {
key = prefix + key;
let value = localStorage.getItem(key);
let parsedValue;
if (value !== null) {
try {
parsedValue = JSON.parse(value);
} catch (_) {
}
}
if (parsedValue === void 0) {
parsedValue = initialize();
localStorage.setItem(key, JSON.stringify(parsedValue));
}
return parsedValue;
}
let accountDefault = {
status: "new",
cert: "",
type: "unspecified",
lang: "en"
};
let identityNew = {
words: [""],
publicKey: "",
secretKey: ""
};
const useAuthSsr = defineStore("authSsr", {
state: () => ({
auth_type: "ssr",
account: readStorage("account", () => accountDefault),
identity: readStorage("identity", () => identityNew)
}),
actions: {
async createIdentity() {
await ssrIdentity.init();
const identity = ssrIdentity.createIdentity();
this.identity = identity;
},
async restoreIdentity(identity) {
this.identity = identity;
},
async restoreAccount(account) {
this.account = account;
}
}
});
export {
useAuthSsr as u
};
//# sourceMappingURL=authSsr-BedulHkH.js.map