JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 29
  • Score
    100M100P100Q47135F
  • License MIT

LiteJsonDB is a lightweight, local JSON database for Node.js. It provides a simple and intuitive API for managing JSON data. This package is a fork of the Python LiteJsonDB project, adapted for Node.js, and is currently about 45% complete.

Package Exports

  • litejsondb
  • litejsondb/src/litejsondb.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (litejsondb) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

πŸ“š LiteJsonDB Documentation

LiteJsonDB is a lightweight local JSON database for Node.js, designed to simplify JSON data management in your projects. This package is a fork of the Python LiteJsonDB project, adapted for Node.js. Currently, this project is about 45% complete, meaning it's already super functional but still has room for more cool features.

LiteJsonDB is like a nifty little vault for your JSON data. It provides a simple and intuitive API for adding, modifying, retrieving, and deleting data. You don't need to worry about the complexities of heavier database systems. With LiteJsonDB, you can focus on what really matters: your data.

πŸ”§ Installation

To get started with LiteJsonDB, you need to install it via npm. It's super easy! Just run the following command in your terminal:

npm install litejsondb

🎯 Usage

🏁 Initialization

Once installed, you can import LiteJsonDB and initialize your database like this:

const litejsondb = require('litejsondb');
const db = new litejsondb();

πŸ“₯ Adding Data

Adding data is a breeze with LiteJsonDB. Use the setData method to store information in the database:

db.setData('users/1', { name: 'John Doe', age: 30 });
db.setData('products/1', { name: 'Laptop', price: 999.99 });

πŸ”„ Editing Data

To update existing data, use editData. You can modify information without erasing what’s already there:

db.editData('users/1', { age: 31 });

❌ Deleting Data

Need to delete data? No problem! The deleteData method allows you to remove specific information:

db.deleteData('products/1');

πŸ” Searching Data

You can also search your data with searchData. This helps you find specific values anywhere in the database:

const searchResults = db.searchData(db.getData(), 'John Doe');
console.log(searchResults);

πŸ› οΈ Utility Functions

LiteJsonDB includes some handy utility functions:

  • hashPassword(password): Hashes the given password.
  • checkPassword(storedHash, password): Checks if the password matches the stored hash.
  • getOrDefault(data, key, defaultValue): Returns the value for the key or a default value if the key doesn’t exist.
  • keyExistsOrAdd(data, key, defaultValue): Checks if the key exists and adds it with a default value if not.

Here’s how you can use them:

const hashedPassword = db.hashPassword('myPassword123');
const isPasswordValid = db.checkPassword(hashedPassword, 'myPassword123');
const defaultValue = db.getOrDefault(testObj, 'country', 'Unknown');
const keyExists = db.keyExistsOrAdd(testObj, 'country', 'Unknown');

πŸ“– Example Code

Here’s a small example to show you how everything works together:

const litejsondb = require('litejsondb');
const db = new litejsondb();

// Add users and products
db.setData('users/1', { name: 'John Doe', age: 30 });
db.setData('products/1', { name: 'Laptop', price: 999.99 });

// Edit a user
db.editData('users/1', { age: 31 });

// Delete a product
db.deleteData('products/1');

// Show the entire database content
console.log('Database Content:', db.showDb());

πŸ› οΈ Future Development

LiteJsonDB is a fork of our Python LiteJsonDB package. I’ve managed to reproduce about 45% of the work so far, and it's already functional with features like adding, editing, and deleting data. However, there’s still a lot to be done!

If you have skills in both Node.js and Python, you might want to dive into the code and contribute to the Node.js project. Currently, I’m focused more on Python development and may not have enough time to add all the desired features to this package.

Your contributions could help move the project forward and make it even better. Feel free to explore the code and get involved!

πŸ’¬ Contribution

If you want to contribute to the project, feel free to open issues or pull requests. Every contribution is welcome to help make this project even better!