123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- const STORAGE_NAME = 'nginx-proxy-manager-tokens';
- /**
- * @returns {Array}
- */
- const getStorageTokens = function () {
- let json = window.localStorage.getItem(STORAGE_NAME);
- if (json) {
- try {
- return JSON.parse(json);
- } catch (err) {
- return [];
- }
- }
- return [];
- };
- /**
- * @param {Array} tokens
- */
- const setStorageTokens = function (tokens) {
- window.localStorage.setItem(STORAGE_NAME, JSON.stringify(tokens));
- };
- const Tokens = {
- /**
- * @returns {Number}
- */
- getTokenCount: () => {
- return getStorageTokens().length;
- },
- /**
- * @returns {Object} t,n
- */
- getTopToken: () => {
- let tokens = getStorageTokens();
- if (tokens && tokens.length) {
- return tokens[0];
- }
- return null;
- },
- /**
- * @returns {String}
- */
- getNextTokenName: () => {
- let tokens = getStorageTokens();
- if (tokens && tokens.length > 1 && typeof tokens[1] !== 'undefined' && typeof tokens[1].n !== 'undefined') {
- return tokens[1].n;
- }
- return null;
- },
- /**
- *
- * @param {String} token
- * @param {String} [name]
- * @returns {Number}
- */
- addToken: (token, name) => {
- // Get top token and if it's the same, ignore this call
- let top = Tokens.getTopToken();
- if (!top || top.t !== token) {
- let tokens = getStorageTokens();
- tokens.unshift({t: token, n: name || null});
- setStorageTokens(tokens);
- }
- return Tokens.getTokenCount();
- },
- /**
- * @param {String} token
- * @returns {Boolean}
- */
- setCurrentToken: token => {
- let tokens = getStorageTokens();
- if (tokens.length) {
- tokens[0].t = token;
- setStorageTokens(tokens);
- return true;
- }
- return false;
- },
- /**
- * @param {String} name
- * @returns {Boolean}
- */
- setCurrentName: name => {
- let tokens = getStorageTokens();
- if (tokens.length) {
- tokens[0].n = name;
- setStorageTokens(tokens);
- return true;
- }
- return false;
- },
- /**
- * @returns {Number}
- */
- dropTopToken: () => {
- let tokens = getStorageTokens();
- tokens.shift();
- setStorageTokens(tokens);
- return tokens.length;
- },
- /**
- *
- */
- clearTokens: () => {
- window.localStorage.removeItem(STORAGE_NAME);
- }
- };
- module.exports = Tokens;
|