UNPKG

@gowiz/searchbar

Version:

Different search bars powered by Gowiz search engine technology

126 lines 4.92 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.removeInputSessionToken = exports.getInputSessionToken = exports.generateInputSessionToken = exports.addSearchTermToLocalStorage = exports.removeSearchTermFromLocalStorage = exports.getSearchTermsInLocalStorage = exports.searchTermInLocalStorage = void 0; const uuid_1 = require("uuid"); function searchTermInLocalStorage(name) { const keyword = 'gowiz_search_suggestion'; if (keyword in localStorage) { let object = []; const value_from_localstorage = localStorage.getItem(keyword); if (value_from_localstorage != null) { object = JSON.parse(value_from_localstorage); } for (let i = 0; i < object.length; i++) { if (object[i].query === name) { return new Date(object[i].timestamp).getTime() > new Date().getTime(); } } } return false; } exports.searchTermInLocalStorage = searchTermInLocalStorage; function getSearchTermsInLocalStorage() { const keyword = 'gowiz_search_suggestion'; const value_from_localstorage = localStorage.getItem(keyword); if (value_from_localstorage == null) { return []; } let current_values = JSON.parse(value_from_localstorage); const current_timestamp = new Date().getTime(); if (current_values == null || current_values.length < 1) { return []; } let original_current_values_len = current_values.length; let to_remove_index = []; for (let i = 0; i < current_values.length; i++) { if (current_values[i].timestamp < current_timestamp) { to_remove_index.push(i); } } current_values = current_values.filter(function (_value, index) { return to_remove_index.indexOf(index) == -1; }); if (current_values.length != original_current_values_len) { localStorage.setItem(keyword, JSON.stringify(current_values)); } current_values.sort(function (first, second) { return second.timestamp - first.timestamp; }); let search_terms = []; for (let i = 0; i < current_values.length; i++) { search_terms.push(current_values[i].query); } return search_terms; } exports.getSearchTermsInLocalStorage = getSearchTermsInLocalStorage; function removeSearchTermFromLocalStorage(name) { const keyword = 'gowiz_search_suggestion'; const value_from_localstorage = localStorage.getItem(keyword); if (value_from_localstorage == null) { return; } let current_values = JSON.parse(value_from_localstorage); let update_was_made = false; if (current_values == null || current_values.length < 1) { current_values = []; } let to_remove_index = []; for (let i = 0; i < current_values.length; i++) { if (current_values[i].query === name) { update_was_made = true; to_remove_index.push(i); break; } } current_values = current_values.filter(function (_value, index) { return to_remove_index.indexOf(index) == -1; }); if (update_was_made) { if (current_values.length == 0) { localStorage.removeItem(keyword); } else { localStorage.setItem(keyword, JSON.stringify(current_values)); } } } exports.removeSearchTermFromLocalStorage = removeSearchTermFromLocalStorage; function addSearchTermToLocalStorage(name) { const keyword = 'gowiz_search_suggestion'; const value_from_localstorage = localStorage.getItem(keyword); let current_values = []; if (value_from_localstorage != null) { current_values = JSON.parse(value_from_localstorage); } let expiry_timestamp = new Date(new Date().getTime() + performance.now() + 2592000000).getTime(); let obj = { query: name, timestamp: expiry_timestamp }; let update_was_made = false; for (let i = 0; i < current_values.length; i++) { if (current_values[i].query === name) { current_values[i] = obj; update_was_made = true; break; } } if (current_values.length == 0 || !update_was_made) { current_values.push(obj); } localStorage.setItem(keyword, JSON.stringify(current_values)); } exports.addSearchTermToLocalStorage = addSearchTermToLocalStorage; function generateInputSessionToken() { const key = 'input_form_token'; const token = uuid_1.v4(); sessionStorage.setItem(key, token); return token; } exports.generateInputSessionToken = generateInputSessionToken; function getInputSessionToken(key = 'input_form_token') { return sessionStorage.getItem(key); } exports.getInputSessionToken = getInputSessionToken; function removeInputSessionToken(key = 'input_form_token') { sessionStorage.removeItem(key); } exports.removeInputSessionToken = removeInputSessionToken; //# sourceMappingURL=storage.js.map