This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
admin-panel/src/libs/tokenstorage/TokenStorage.ts

30 lines
642 B
TypeScript

import { isString } from "lodash";
export const DEFAULT_STORAGE_KEY = "token";
export interface TokenStorageOptions {
key?: string;
}
export default class TokenStorage {
public key: string;
public token: string | null;
constructor({ key }: TokenStorageOptions = {}) {
this.key = isString(key) ? key : DEFAULT_STORAGE_KEY;
this.token = this.loadToken();
}
private loadToken() {
return localStorage.getItem(this.key);
}
private saveToken(token: string) {
return localStorage.setItem(this.key, token);
}
public setToken(newToken: string) {
this.token = newToken;
this.saveToken(newToken);
}
}