JSPM

  • Created
  • Published
  • Downloads 1251
  • Score
    100M100P100Q135848F
  • License Apache-2.0

RushDB Javascript SDK

Package Exports

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

    Readme

    RushDB Logo

    🚀 RushDB SDK for JavaScript and TypeScript

    The Modern Graph Database Client for Web & Node.js

    NPM Version NPM License NPM Downloads npm bundle size

    Made with Node Package - Typescript

    🌐 Website📖 Documentation☁️ Cloud Platform🔍 Examples

    ✨ Highlights


    • 🔌 No Configuration Needed: Plug-and-play design requires minimal setup to get started
    • 🛡️ Automatic Type Inference: Enjoy seamless type safety with automatic TypeScript inference
    • 🔄 Isomorphic Architecture: Fully compatible with both server and browser environments
    • ⚡ Zero Dependencies: Lightweight (just 6.9KB gzipped) and efficient with no external dependencies

    📦 Installation


    # NPM
    npm install @rushdb/javascript-sdk
    
    # YARN
    yarn add @rushdb/javascript-sdk
    
    # PNPM
    pnpm add @rushdb/javascript-sdk

    🚀 Usage


    1. Obtain API Key: Grab one from the RushDB Cloud Dashboard.
    2. Build anything: Easily push, search, and manage relationships within your data.

    Quick Example

    import RushDB from '@rushdb/javascript-sdk';
    
    // Setup SDK
    const db = new RushDB("RUSHDB_API_KEY");
    // Default URL is "https://api.rushdb.com/api/v1". See SDK Configuration for more options.
    
    // Push any data, and RushDB will automatically flatten it into Records
    // and establish relationships between them accordingly.
    await db.records.createMany({
      label: "COMPANY",
      payload: {
        name: 'Google LLC',
        address: '1600 Amphitheatre Parkway, Mountain View, CA 94043, USA',
        foundedAt: '1998-09-04T00:00:00.000Z',
        rating: 4.9,
        DEPARTMENT: [{
          name: 'Research & Development',
          description: 'Innovating and creating advanced technologies for AI, cloud computing, and consumer devices.',
          PROJECT: [{
            name: 'Bard AI',
            description: 'A state-of-the-art generative AI model designed for natural language understanding and creation.',
            active: true,
            budget: 1200000000,
            EMPLOYEE: [{
              name: 'Jeff Dean',
              position: 'Head of AI Research',
              email: 'jeff@google.com',
              dob: '1968-07-16T00:00:00.000Z',
              salary: 3000000
            }]
          }]
        }]
      }
    })
    
    
    // Find Records by specific criteria
    const matchedEmployees = await db.records.find({
      labels: ['EMPLOYEE'],
      where: {
        position: { $contains: 'AI' },
        PROJECT: {
          DEPARTMENT: {
            COMPANY: {
              rating: { $gte: 4 }
            }
          }
        }
      }
    })
    
    const company = await db.records.findUniq({
      labels: ['COMPANY'],
      where: {
        name: 'Google LLC'
      }
    })
    
    // Manage relationships
    await company.attach(matchedEmployees, { type: "WORKING_AT" })

    ⚙️ SDK Configuration


    The SDK is designed to be flexible. You can provide configuration options when initializing RushDB to customize its behavior, such as the API endpoint or request timeouts.

    import RushDB from '@rushdb/javascript-sdk';
    
    // Example: Initialize with a custom URL and timeout
    const db = new RushDB('RUSHDB_API_KEY', {
      url: 'http://your-custom-rushdb-server.com/api/v1', // Default is 'https://api.rushdb.com/api/v1'
      timeout: 30000 // 30 seconds
    });

    The RushDB constructor accepts an optional second argument for configuration. Key options include:

    • url: The complete URL to the RushDB API.
    • Alternatively, host, port, and protocol can be specified individually.
    • timeout: Request timeout in milliseconds (default: 10000).
    • httpClient: For advanced use cases, provide a custom HTTP client implementation.
    • logger: Implement a custom logger for debugging or monitoring.
    • options.allowForceDelete: Set to true to enable deleting all records without specifying criteria (defaults to false for safety).

    For a comprehensive guide on all available configuration options, please refer to the SDK Configuration Documentation.

    You're Awesome! 🚀

    📚 Check the Complete Documentation and Examples Repository to learn more!

    🤝 Contributing


    We welcome contributions! See our CONTRIBUTING.md guide for details.