Skip to content

Instantly share code, notes, and snippets.

View nazaslater's full-sized avatar

Leandro Nascimento nazaslater

View GitHub Profile
@nazaslater
nazaslater / test.ts
Created April 10, 2025 13:13
Página de teste da função memoize
import { memoize } from './memoize';
// Função simulando cálculo pesado
function slowAdd(a: number, b: number): number {
console.log(`Calculando: ${a} + ${b}`);
return a + b;
}
// Criando função memoizada
const memoAdd = memoize(slowAdd, { maxSize: 2, ttl: 3000 });
@nazaslater
nazaslater / memoize.ts
Last active April 10, 2025 13:15
Função de memoização em TypeScript com suporte a TTL e limite de tamanho de cache
/**
* Memoiza o resultado de uma função com suporte a múltiplos parâmetros,
* controle de expiração por tempo (TTL) e limite de tamanho do cache.
*
* @param fn - A função original a ser memoizada.
* @param options - Configurações opcionais: maxSize (número máx. de itens no cache), ttl (tempo em ms).
* @returns Uma nova função que cacheia os resultados com base nos argumentos.
*/
export function memoize<T extends (...args: any[]) => any>(
fn: T,