_comuns/dist-front/cacheMemoria.js

27 lines
947 B
JavaScript

/** gerar uma função de cache para uso em memoria */
const _cache = {};
globalThis.cacheMemoria_cache = _cache;
export const cacheM = (chave, valor, validadeSeg) => {
// converte a chave e string
const txChave = typeof chave == "string"
? chave
: typeof chave == "number"
? String(chave)
: encodeURIComponent(JSON.stringify(chave));
const validade = validadeSeg && new Date().getTime() + validadeSeg * 1000;
if (valor !== undefined) {
_cache[txChave] = {
valor,
validade,
};
}
const busca = _cache[txChave];
if (busca?.validade && busca.validade < new Date().getTime()) {
return undefined;
}
return busca?.valor;
};
export const verCacheM = () => _cache;
export const cacheMemoria = cacheM;
/** para uso fixo dentro de uma função, trava a chave */
export const cacheMFixo = (chave) => (valor) => cacheM(chave, valor);