À propos du projet
lowdb est une petite base de données JSON locale minimaliste pour JavaScript et TypeScript. Son idée centrale est que si vous connaissez JavaScript, vous savez déjà l'utiliser : les données résident dans un objet simple à db.data, et vous les interrogez ou les modifiez avec les opérations natives sur les tableaux et les objets plutôt qu'avec un langage de requête personnalisé.
L'utilisation typique lit ou crée un fichier JSON, puis le met à jour soit en deux étapes (muter db.data, puis await db.write()), soit en un seul appel via db.update(fn). Le fichier db.json obtenu est du JSON ordinaire. Les utilisateurs de TypeScript peuvent déclarer un type Data afin que db.data soit vérifié par le typage, ce qui permet d'attraper des erreurs comme pousser un nombre dans un tableau de chaînes.
Le paquet est en ESM pur et s'installe avec npm install lowdb. Il fournit quatre presets pour les cas courants : JSONFilePreset, JSONFileSyncPreset, LocalStoragePreset et SessionStoragePreset. Pour plus de contrôle, il expose les classes Low et LowSync ainsi que des adaptateurs. Les adaptateurs intégrés incluent JSONFile et JSONFileSync pour les fichiers JSON, Memory et MemorySync pour un usage rapide en mémoire pendant les tests, et LocalStorage et SessionStorage pour les navigateurs. Les adaptateurs utilitaires TextFile, TextFileSync, DataFile et DataFileSync aident à construire des adaptateurs personnalisés, par exemple pour prendre en charge YAML ou pour ajouter du chiffrement ou de la compression en fournissant des fonctions parse et stringify.
Les adaptateurs sont de simples classes exposant des méthodes read et write, ce qui permet de cibler un stockage distant ou d'autres formats. Le README montre aussi comment étendre Low avec Lodash pour des requêtes chaînées. Limites documentées : lowdb ne prend pas en charge le module cluster de Node, et l'écriture de gros objets (environ 10-100 Mo) peut être lente car chaque db.write sérialise l'intégralité de db.data avec JSON.stringify. Les opérations par lots et l'écriture uniquement lorsque nécessaire peuvent atténuer cela, et pour une plus grande échelle, le README recommande PostgreSQL ou MongoDB.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.