JSPM

nixabase

1.0.0
    • ESM via JSPM
    • ES Module Entrypoint
    • Export Map
    • Keywords
    • License
    • Repository URL
    • TypeScript Types
    • README
    • Created
    • Published
    • 0
    • Score
      100M100P100Q20682F
    • License Apache-2.0

    A lightweight and flexible database for JSON and TXT with memory caching and image compression

    Package Exports

    • nixabase
    • nixabase/index.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 (nixabase) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    Nixabase

    Nixabase is a lightweight, flexible, and efficient database management system for Node.js applications. It provides a simple interface for storing and retrieving data in both JSON and TXT formats, with additional features like memory caching and image compression.

    Features

    • Dual Format Support: Store data in either JSON or TXT format.
    • Memory Caching: Improve read performance with optional in-memory caching.
    • File Upload: Built-in support for file uploads, including image compression.
    • Asynchronous Operations: All database operations are asynchronous for better performance.
    • Error Handling: Robust error handling for database operations.
    • Flexible Configuration: Customize database behavior through various options.

    Installation

    Install Nixabase using npm:

    npm install nixabase

    Usage

    Initializing the Database

    const Nixabase = require('nixabase');
    
    const db = new Nixabase('path/to/database.json', {
      format: 'json', // or 'txt'
      performance: {
        memory: {
          enabled: true,
          maxItemCount: 1000
        },
        imageCompression: {
          enabled: true,
          level: 6,
          quality: 80,
          resize: { width: 800, height: 600 }
        }
      }
    });

    Basic Operations

    // Save data
    await db.save('user1', { name: 'John Doe', age: 30 });
    
    // Retrieve data
    const user = await db.get('user1');
    console.log(user); // { name: 'John Doe', age: 30 }
    
    // Update data
    await db.update('user1', { name: 'John Doe', age: 31 });
    
    // Delete data
    await db.delete('user1');

    File Operations

    // Upload a file
    await db.uploadFile('path/to/image.jpg', 'profile_pic');
    
    // Retrieve a file
    const fileBuffer = await db.getFile('profile_pic');

    API Reference

    constructor(filePath, options)

    Creates a new Nixabase instance.

    • filePath: Path to the database file.
    • options: Configuration options (optional).
      • format: 'json' or 'txt' (default: 'json').
      • performance: Performance-related options.

    async save(key, value)

    Saves a key-value pair to the database.

    async get(key)

    Retrieves a value from the database by its key.

    async update(key, value)

    Updates an existing key-value pair in the database.

    async delete(key)

    Deletes a key-value pair from the database.

    async uploadFile(sourcePath, destinationKey)

    Uploads a file to the database with optional image compression.

    async getFile(key)

    Retrieves a file from the database.

    Performance Optimization

    Nixabase offers performance optimization through memory caching and image compression. These features can be enabled and configured in the constructor options.

    Error Handling

    Nixabase uses async/await and throws errors when operations fail. It's recommended to use try-catch blocks when working with Nixabase methods.

    Contributing

    Contributions are welcome! Please feel free to submit a Pull Request.

    License

    This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

    Author

    Nixabase is created and maintained by Nixaut.