@authlocal/authlocal
Version:
User-sovereign Logins For All
37 lines • 1.16 kB
JavaScript
import { PassportsFile } from "../../auth/passports-file.js";
import { storageSignal } from "../../tools/storage-signal.js";
import { migrateStorageKeyRename } from "../../tools/migrate-storage-key-rename.js";
export class PassportStore {
#storage;
constructor() {
migrateStorageKeyRename(window.localStorage, "authduo_passports", "authlocal_passports");
this.#storage = storageSignal("authlocal_passports");
}
#save(passports) {
this.#storage.save(passports.toData());
}
get passportsFile() {
const data = this.#storage.signal.value;
try {
return data
? PassportsFile.fromData(data)
: new PassportsFile();
}
catch {
return new PassportsFile();
}
}
list() {
return this.passportsFile.list();
}
add(...additions) {
this.#save(this.passportsFile.add(...additions));
}
delete(...deletions) {
this.#save(this.passportsFile.delete(...deletions));
}
deleteAll() {
this.#save(this.passportsFile.deleteAll());
}
}
//# sourceMappingURL=passport-store.js.map