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

11 months ago

1.5.3

11 months ago

1.5.2

12 months ago

1.5.0

12 months ago

1.0.3

1 year ago

1.0.2

1 year ago