À propos du projet
getorset-anything est un petit paquet npm qui encapsule un schéma courant : rechercher une clé dans une Map ou un objet simple, et créer une valeur initiale si la clé est absente. Le README explique la motivation avec un exemple où une Map contient des tableaux et où l'appelant doit vérifier undefined, créer un tableau vide, le définir, puis pousser. Le paquet fournit les fonctions mapGetOrSet et objGetOrSet pour effectuer cette étape de recherche-ou-initialisation en un seul appel.
L'utilisation est montrée pour les Maps et les objets. Pour une Map, mapGetOrSet(map, 'abc', () => []) renvoie le tableau existant ou en crée et stocke un nouveau. Pour un objet, objGetOrSet(obj, 'abc', () => []) fait de même. Le README note que l'implémentation évite une vérification has() séparée lorsque la valeur est trouvée, la renvoyant immédiatement, ce qui est présenté comme une considération de performance.
La prise en charge de TypeScript est une caractéristique centrale. Le README indique qu'aucune configuration supplémentaire n'est nécessaire et montre l'inférence de type à l'œuvre : le type de retour de la fabrique doit correspondre au type de valeur de la Map ou de l'objet, et la valeur renvoyée porte ce type. Les exemples montrent une fabrique correcte renvoyant number[] et une fabrique incorrecte renvoyant un objet rejetée par le vérificateur de types, ainsi que des erreurs de type lors du push d'une chaîne dans un tableau de nombres.
Le paquet fait partie d'une famille de petits utilitaires TypeScript du même auteur, incluant is-what, is-where, merge-anything, check-anything, remove-anything, map-anything, filter-anything, copy-anything, case-anything, flatten-anything et nestify-anything. L'installation se fait via npm i getorset-anything. Le README ne décrit pas de dépendances d'exécution, de taille de bundle, de benchmarks ou de prise en charge des navigateurs au-delà de l'accent mis sur TypeScript.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.