Skip to main content

Built and signed on GitHub Actions

In-memory with persistance local JSON database

This package works with DenoIt is unknown whether this package works with Cloudflare Workers, Node.js, Bun, Browsers
It is unknown whether this package works with Cloudflare Workers
It is unknown whether this package works with Node.js
This package works with Deno
It is unknown whether this package works with Bun
It is unknown whether this package works with Browsers
JSR Score
100%
Published
4 weeks ago (1.4.0)

Petite DB

JSR

The minimalistic NoSQL in-memory/on-disk database

Report Bug · Request Feature


About

  • Manage data in memory
  • Store and load data securely to/from a JSON file
  • Core operations:
    • Create, update, upsert, delete records
    • Read, Read all and find specific records
    • Snapshot and Clear data
    • Retrieve the raw data using GetData
    • Option to automatically add a _id per record
    • Option to manually save the data to disk
    • Retrieve configurable amount of random records
    • Option to watch local DB File and reload content automatically when its content is modified
  • Ideal for test and offline applications

Installation and Usage

  1. Install deno: https://deno.com
  2. deno add @studiowebux/petitedb

Example:

import { PetiteDB } from "@studiowebux/petitedb";

const db = new PetiteDB("database.json");

// Collection name: Category
// Record id: shoes
db.create("category", "shoes", { name: "Shoe" });
db.upsert("category", "shoes", { name: "shoes" });
db.update("category", "shoes", { name: "Shoes" });
db.read("category", "shoes");
db.find("category", { name: "Shoes" });
db.delete("category", "shoes");
const db1 = new PetiteDB("autoid.json");

db1.upsert("movies", "movie1", { title: "test 1" });
db1.upsert("movies", "movie2", { title: "test 2" });
db1.upsert("movies", "movie3", { title: "test 3" });
console.log(db1.readAll("movies"));

Releases and Github Actions

git tag -a X.Y.Z -m "Version X.Y.Z"
git push origin tags/X.Y.Z

Contributing

  1. Fork the project
  2. Create a Feature Branch
  3. Commit your changes
  4. Push your changes
  5. Create a PR
Working with your local branch

Branch Checkout:

git checkout -b <feature|fix|release|chore|hotfix>/prefix-name

Your branch name must starts with [feature|fix|release|chore|hotfix] and use a / before the name; Use hyphens as separator; The prefix correspond to your Kanban tool id (e.g. abc-123)

Keep your branch synced:

git fetch origin
git rebase origin/master

Commit your changes:

git add .
git commit -m "<feat|ci|test|docs|build|chore|style|refactor|perf|BREAKING CHANGE>: commit message"

Follow this convention commitlint for your commit message structure

Push your changes:

git push origin <feature|fix|release|chore|hotfix>/prefix-name

Examples:

git checkout -b release/v1.15.5
git checkout -b feature/abc-123-something-awesome
git checkout -b hotfix/abc-432-something-bad-to-fix
git commit -m "docs: added awesome documentation"
git commit -m "feat: added new feature"
git commit -m "test: added tests"

License

Distributed under the MIT License. See LICENSE for more information.

Contact

| Buy Me A Coffee | Webux Logo Webux Lab |
Built and signed on
GitHub Actions
View transparency log

Add Package

deno add jsr:@studiowebux/petitedb

Import symbol

import * as petitedb from "@studiowebux/petitedb";

---- OR ----

Import directly with a jsr specifier

import * as petitedb from "jsr:@studiowebux/petitedb";

Add Package

npx jsr add @studiowebux/petitedb

Import symbol

import * as petitedb from "@studiowebux/petitedb";

Add Package

yarn dlx jsr add @studiowebux/petitedb

Import symbol

import * as petitedb from "@studiowebux/petitedb";

Add Package

pnpm dlx jsr add @studiowebux/petitedb

Import symbol

import * as petitedb from "@studiowebux/petitedb";

Add Package

bunx jsr add @studiowebux/petitedb

Import symbol

import * as petitedb from "@studiowebux/petitedb";