npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

nodedb-json

v1.0.0

Published

nodedb-json is a lightweight JSON file database tool designed for Electron applications. It provides an easy-to-use API for setting, reading, querying, updating, and deleting data stored in JSON files.

Downloads

60

Readme

nodedb-json

nodedb-json is a lightweight JSON file database tool designed for Node.js. It provides an easy-to-use API for setting, reading, querying, updating, and deleting data stored in JSON files. Supports both CommonJS and ES6 module syntax.

Features

  • Simple and Intuitive: Easy-to-use API for seamless interaction with JSON files.
  • Persistent Storage: Data is stored persistently in JSON files, perfect for Node.js.
  • Flexible Querying: Supports querying and filtering of collections.
  • Array Operations: Provides robust methods for manipulating arrays, including adding, removing, and updating elements.
  • Lightweight: Minimal dependencies, ensuring fast performance.

Installation

npm install nodedb-json

Usage

CommonJS

const NodedbJson = require('nodedb-json');
const db = new NodedbJson('path/to/db.json');

db.set('name', 'John Doe');
console.log(db.get('name')); // Outputs: John Doe

ES6

import NodedbJson from 'nodedb-json';
const db = new NodedbJson('path/to/db.json');

db.set('name', 'John Doe');
console.log(db.get('name')); // Outputs: John Doe

Basic Operations

Set

db.set("key", "value");

Get

const value = db.get("key");

Update

// Update an object
db.update("key", { newField: "newValue" });

// Update an array item
db.update("arrayKey", (item) => item.id === 1, { name: "Updated Name" });

Delete

// Delete a key
db.delete("key");

// Delete array items using a predicate
db.delete("arrayKey", (item) => item.id === 1);

// Batch delete array items by specified field
db.delete("arrayKey", [1, 3]); // Deletes items with id 1 and 3
db.delete("arrayKey", ["Alice", "Charlie"], "name"); // Deletes items with name 'Alice' and 'Charlie'

Push

db.push("users", { name: "Bob", age: 30 }).push("users", { name: "Charlie", age: 35 });
db.push("users", [
    { name: "Bob", age: 30 },
    { name: "Charlie", age: 35 },
]);

Advanced Operations

Find

const item = db.find("arrayKey", (item) => item.id === 2);

Filter

const items = db.filter("arrayKey", (item) => item.isActive);

Changelog

[1.0.0] - 2024-05-27

  • Major version update.
  • Added support for ES6 module syntax.
  • Enhanced delete method to support batch deletion by specifying a field.
  • Added JSDoc comments for all methods.

[0.1.4] - 2024-05-20

  • Initial release with basic CRUD operations.
  • Support for array operations with push, find, and filter.

API Documentation

set(key, value)

Sets a value in the JSON data.

  • Parameters:
    • key (string): The key to set.
    • value (any): The value to set.
  • Returns: NodedbJson - The instance of the database for chaining.

get(key)

Gets a value from the JSON data.

  • Parameters:
    • key (string): The key to get.
  • Returns: any - The value.

has(key)

Checks if a key exists in the JSON data.

  • Parameters:
    • key (string): The key to check.
  • Returns: boolean - True if the key exists, otherwise false.

update(key, predicateOrUpdater, updater)

Updates a value in the JSON data.

  • Parameters:
    • key (string): The key to update.
    • predicateOrUpdater (function|object): The predicate function or updater object.
    • updater (object) [optional]: The updater object if a predicate function is provided.
  • Returns: NodedbJson - The instance of the database for chaining.

delete(key, predicateOrKeys, field)

Deletes a value from the JSON data.

  • Parameters:
    • key (string): The key to delete.
    • predicateOrKeys (function|string[]) [optional]: The predicate function or array of keys to delete.
    • field (string) [optional]: The field to match for array deletion. Default is 'id'.
  • Returns: NodedbJson - The instance of the database for chaining.

find(key, predicate)

Finds a value in the JSON data.

  • Parameters:
    • key (string): The key to find.
    • predicate (function): The predicate function to match.
  • Returns: any - The found value.

filter(key, predicate)

Filters values in the JSON data.

  • Parameters:
    • key (string): The key to filter.
    • predicate (function): The predicate function to match.
  • Returns: any[] - The filtered values.

push(key, value)

Pushes a value into an array in the JSON data.

  • Parameters:
    • key (string): The key to push to.
    • value (any|any[]): The value or values to push.
  • Returns: NodedbJson - The instance of the database for chaining.

License

MIT

Contact

For any questions or feedback, please contact me at [email protected].

For issues and support, visit the GitHub Issues page.