0.1.3 • Published 2 years ago

dzn-cache v0.1.3

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
2 years ago

Introdução

O pacote que apresentamos é uma solução prática e eficiente para implementar cache em projetos TypeScript, utilizando as poderosas ferramentas Redis ou Memcached. Com esse pacote, você terá acesso a uma variedade de métodos simplificados que permitirão o gerenciamento fácil e rápido de dados em cache.

O objetivo principal deste pacote é simplificar a implementação de cache, fornecendo uma interface intuitiva e de fácil utilização. Com ele, você poderá armazenar, recuperar, verificar a existência e excluir dados em cache com apenas algumas linhas de código.

Ao utilizar Redis ou Memcached como backend de cache, você se beneficiará de suas características de alta velocidade, escalabilidade e capacidade de armazenar grandes volumes de dados. Essas tecnologias são amplamente adotadas e confiáveis, garantindo que seu cache funcione de maneira eficiente e confiável.

Além disso, o pacote foi desenvolvido especificamente para TypeScript, aproveitando os recursos dessa linguagem para fornecer uma experiência de desenvolvimento fluída. Com suporte a tipos estáticos, você terá a garantia de que seu código está correto em tempo de compilação, reduzindo erros e melhorando a manutenibilidade do seu projeto.

Em resumo, nosso pacote de cache simplificado para TypeScript com Redis ou Memcached é a escolha ideal para agilizar o processo de implementação de cache em seus projetos. Com sua interface intuitiva e métodos simplificados, você poderá aproveitar ao máximo as vantagens do cache, aumentando a performance e a eficiência de suas aplicações.

Instalação

Para instalar a biblioteca de forma profissional, utilize o gerenciador de pacotes npm da seguinte maneira:

npm i dzn-cache

Utilização

🚧 No momento só temos a implementação para o Redis! 🚧

Para utilizar o cache em sua aplicação, é necessário importar a classe CacheModelInterface da biblioteca:

import Cache from 'dzn-cache';

Em seguida, é possível criar uma instância da classe Cache e utilizá-la para armazenar e recuperar dados em cache:

const cache = new Cache();

// Armazena um valor em cache por 5 minutos
cache.remember('key', 'Siga o Diaszano no GitHub.', 5 * 60 * 1000);

// Recupera um valor armazenado em cache
const valor = cache.get('key');

Também será possível utilizar callbacks para armazenamento e recuperação de dados em cache:

const cache = new Cache();

// Armazena um valor em cache por 5 minutos
cache.remember('key', (): string => {
    const valor = 'Siga o Diaszano no GitHub.';
    return valor;
}, 5 * 60 * 1000);

// Recupera um valor armazenado em cache
const valor = cache.get('key');

Temos também outros métodos, e eles são:

import Cache from 'dzn-cache';

const cache = new Cache();

/**
 * Limpa todos os dados do cache.
 * @returns {Promise<void>}
 */
const promise_flush: Promise<void> = cache.flush();

/**
 * Retorna o valor armazenado no cache para a chave informada.
 * @param {string} key - A chave para buscar o valor.
 * @returns {Promise<string|null>} - O valor armazenado ou null se não houver valor para a chave.
 */
const promise_get: Promise<string | null> = cache.get('key');

/**
 * Verifica se existe um valor armazenado para a chave informada.
 * @param {string} key - A chave para verificar a existência do valor.
 * @returns {Promise<boolean>} - True se existe valor armazenado ou False caso contrário.
 */
const promise_has: Promise<boolean> = cache.has('key');

/**
 * Retorna o valor armazenado no cache para a chave informada e o remove do cache.
 * @param {string} key - A chave para buscar o valor.
 * @returns {Promise<string|null>} - O valor armazenado ou null se não houver valor para a chave.
 */
const promise_pull: Promise<string | null> = cache.pull('key');

/**
 * Remove a chave e o valor associado do cache.
 * @param {string} key - A chave para remover.
 * @returns {Promise<void>}
 */
const promise_forget: Promise<void> = cache.forget('key');

/**
 * Armazena um valor no cache para a chave informada por um tempo determinado.
 * @param {string} key - A chave para armazenar o valor.
 * @param {string | (() => string)} value - O valor a ser armazenado. Pode ser uma string ou um callback que retorna uma string.
 * @param {number} seconds - O tempo de vida do valor em segundos. Se não for informado, o valor será armazenado indefinidamente.
 * @returns {Promise<void>}
 */
const promise_set: Promise<void> = cache.set('chave', (): string => {
    const valor = 'Siga o Diaszano no GitHub.';
    return valor;
}, 5 * 60 * 1000);

/**
 * Armazena um valor no cache para a chave informada por um tempo determinado caso não exista.
 * @param {string} key - A chave para armazenar o valor.
 * @param {string | (() => string)} value - O valor a ser armazenado. Pode ser uma string ou um callback que retorna uma string.
 * @param {number} seconds - O tempo de vida do valor em segundos. Se não for informado, o valor será armazenado indefinidamente.
 * @returns {Promise<void>}
 */
const promise_add: Promise<void> = cache.add('chave', (): string => {
    const valor = 'Siga o Diaszano no GitHub.';
    return valor;
}, 5 * 60 * 1000);

/**
 * Armazena um valor no cache para a chave informada por um tempo indefinido.
 * @param {string} key - A chave para armazenar o valor.
 * @param {string | (() => string)} value - O valor a ser armazenado. Pode ser uma string ou um callback que retorna uma string.
 */
const promisse_forever: Promise<void> = cache.forever('chave', (): string => {
    const valor = 'Siga o Diaszano no GitHub.';
    return valor;
});

/**
 * Retorna o valor armazenado no cache para a chave informada, se existir.
 * Caso não exista valor para a chave, o método armazena o valor fornecido no cache por um tempo indeterminado e retorna-o.
 * @param {string} key - A chave para buscar o valor.
 * @param {string | (() => string)} value - O valor a ser armazenado caso não exista valor para a chave. Pode ser uma string ou um callback que retorna uma string.
 * @returns {Promise<string>} - O valor armazenado ou o valor informado.
 */
const promisse_rememberForever: Promise<string | null> = cache.rememberForever('chave', (): string => {
    const valor = 'Siga o Diaszano no GitHub.';
    return valor;
});

/**
 * Retorna o valor armazenado no cache para a chave informada, se existir.
 * Caso não exista valor para a chave, o método armazena o valor fornecido no cache por um tempo determinado e retorna-o.
 * @param {string} key - A chave para buscar o valor.
 * @param {string | (() => string)} value - O valor a ser armazenado caso não exista valor para a chave.
 * @param {number} seconds - O tempo de vida do valor em segundos. Se não for informado, o valor será armazenado indefinidamente.
 * @returns {Promise<string>} - O valor armazenado ou o valor informado.
 */
const promisse_rememberremember: Promise<string | null> = cache.remember('chave', (): string => {
    const valor = 'Siga o Diaszano no GitHub.';
    return valor;
}, 5 * 60 * 1000);

Contribuição

Contribuições são sempre bem-vindas! Se você deseja contribuir com este projeto, por favor abra uma issue ou uma pull request.

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.3

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago