@gowiz/searchbar
Version:
Different search bars powered by Gowiz search engine technology
126 lines • 4.92 kB
JavaScript
;
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