Sobre o projeto

getorset-anything é um pequeno pacote npm que encapsula um padrão comum: procurar uma chave em um Map ou objeto simples e criar um valor inicial se a chave estiver ausente. O README explica a motivação com um exemplo em que um Map contém arrays e o chamador precisa verificar undefined, criar um array vazio, defini-lo e então fazer push. O pacote fornece as funções mapGetOrSet e objGetOrSet para realizar essa etapa de busca ou inicialização em uma única chamada. O uso é mostrado tanto para Maps quanto para objetos. Para um Map, mapGetOrSet(map, 'abc', () => []) retorna o array existente ou cria e armazena um novo. Para um objeto, objGetOrSet(obj, 'abc', () => []) faz o mesmo. O README observa que a implementação evita uma verificação has() separada quando o valor é encontrado, retornando-o imediatamente, o que é apresentado como uma consideração de desempenho. O suporte a TypeScript é um recurso central. O README afirma que nenhuma configuração extra é necessária e mostra a inferência de tipos funcionando: o tipo de retorno da factory deve corresponder ao tipo de valor do Map ou objeto, e o valor retornado carrega esse tipo. Os exemplos mostram uma factory correta retornando number[] e uma factory incorreta retornando um objeto sendo rejeitada pelo verificador de tipos, bem como erros de tipo ao fazer push de uma string em um array de números. O pacote faz parte de uma família de pequenos utilitários TypeScript do mesmo autor, incluindo is-what, is-where, merge-anything, check-anything, remove-anything, map-anything, filter-anything, copy-anything, case-anything, flatten-anything e nestify-anything. A instalação é via npm i getorset-anything. O README não descreve dependências de runtime, tamanho do bundle, benchmarks ou suporte a navegadores além do foco em TypeScript.