1.6.6 • Published 11 months ago

@aurios/jason v1.6.6

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

jason db šŸ“¦

image with logo and name of package

License: MIT PRs Welcome Maintenance Made with Bun Node Current TypeScript npm bundle size NPM Downloads GitHub Repo stars

šŸš€ A simple, lightweight, and embeddable JSON database built with Bun

jason is the perfect solution when you need a fast and easy-to-use JSON database in your Bun projects. With features like schema validation, concurrency control, and built-in caching, it provides everything you need in a simple package.

✨ Highlights

  • šŸ“ Simple API - CRUD and query JSON documents with just a few lines of code
  • 🪶 Lightweight & Embeddable - Easy integration without adding bloat to your project
  • āœ… Schema Validation - Ensure your data integrity
  • šŸ”’ Concurrency Control - Prevent update conflicts
  • šŸ“š Versioning Support - Track document changes
  • ⚔ Built-in Caching - Improve read performance
  • šŸ” Query System - Find documents with custom criteria

šŸš€ Installation

bun add -D jason

# or

npm install -D jason

šŸ’» Quick Example

import JasonDB from "jason";

// Define your interfaces
interface User {
  name: string;
  email: string;
}

interface Database {
  users: User[];
}

// Initialize the database
const db = new JasonDB<Database>("my-db");

// Create a collection
const users = await db.collection("users", {
  schema: (user) => user.name && user.email.includes("@"),
});

// Use the simple API
await users.create({
  name: "John Smith",
  email: "john@example.com",
});

šŸ› ļø Core API

šŸ“¦ JasonDB

// Create an instance
const db = new JasonDB("my-database");

// Access collections
const myCollection = db.collection("name");

// List collections
const collections = await db.listCollections();

šŸ“‘ Collections

// Create
const doc = await collection.create({ ... });

// Read
const item = await collection.read("id");

// Update
await collection.update("id", { field: "new value" });

// Delete
await collection.delete("id");

// Query
const results = await collection.query(doc => doc.age > 18);

šŸ¤ Contributing

Contributions are welcome!

  1. šŸ“ Fork the project
  2. šŸ”§ Create your feature branch (git checkout -b feature/AmazingFeature)
  3. šŸ“ Commit your changes (git commit -m 'Add: amazing feature')
  4. šŸ“¤ Push to the branch (git push origin feature/AmazingFeature)
  5. šŸ” Open a Pull Request

šŸ›  Development

# Clone the repo
git clone https://github.com/realfakenerd/jason

# Install dependencies 
bun install

# Run tests
bun test

# Build project
bun run build

šŸ“„ License

Distributed under the MIT License


⭐ If this project helped you, consider giving it a star! šŸ“« Questions? Open an issue or get in touch!

1.6.6

11 months ago

1.6.5

11 months ago

1.5.5

12 months ago

1.5.3

1 year ago

1.5.2

1 year ago

1.5.0

1 year ago

1.0.3

1 year ago

1.0.2

1 year ago