@eotl/core
Version:
Assortment of data structures, Vue.js components, and utilities across EOTL apps and sites.
55 lines (54 loc) • 1.34 kB
JavaScript
;
const pinia = require("pinia");
require("vue");
const simpleSignedRecords = require("@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 = pinia.defineStore("authSsr", {
state: () => ({
auth_type: "ssr",
account: readStorage("account", () => accountDefault),
identity: readStorage("identity", () => identityNew)
}),
actions: {
async createIdentity() {
await simpleSignedRecords.ssrIdentity.init();
const identity = simpleSignedRecords.ssrIdentity.createIdentity();
this.identity = identity;
},
async restoreIdentity(identity) {
this.identity = identity;
},
async restoreAccount(account) {
this.account = account;
}
}
});
exports.useAuthSsr = useAuthSsr;
//# sourceMappingURL=authSsr-Aa_pi4mF.cjs.map