NukeBase

Connection Setup

The client automatically establishes a secure WebSocket connection:

Basic connection
<script type="module">
  import createClient from './sdkmod.js';

  // ============================================
  // PATTERN 1: Full client object
  // ============================================
  const db = await createClient();

  // Use methods with db. prefix
  await db.set(['users', 'john'], { name: 'John', age: 30 });
  const user = await db.get(['users', 'john']);

  // ============================================
  // PATTERN 2: Destructured methods (recommended)
  // All examples below use this pattern
  // ============================================
  const { set, get, update, remove, query, getSub, querySub,
          getSubChanged, querySubChanged, callableFunction,
          login, logout, createUser, changePassword, magicLink } = await createClient();

  console.log("Connected and ready to use NukeBase");

  // Use methods directly without prefix
  await set(['users', 'alice'], { name: 'Alice', age: 28 });
  const userData = await get(['users', 'alice']);

  // ============================================
  // PATTERN 3: Attach to window (global access)
  // Useful for multi-file apps or console debugging
  // ============================================
  const client = await createClient();

  // Attach full client object
  window.db = client;

  // Optional: expose individual helpers directly
  Object.assign(window, client);

  // Now use from anywhere: window.db.get(...) or just get(...)
</script>

Important: The example above shows all three patterns for demonstration. In practice, choose ONE pattern for your application. Each pattern creates its own WebSocket connection, so using multiple would create multiple connections.

Key Features:

  • Promise-based initialization: Wait for connection before using the client
  • Automatic Reconnection: Reconnects every 5 seconds after disconnection
  • Subscription Restoration: Automatically restores all active subscriptions after reconnect
  • Tab Focus Recovery: Reconnects when browser tab regains focus
  • Encapsulated State: Multiple client instances can coexist independently

Connection State Indicators

The SDK provides console messages to track connection state:

  • ✅ Connected to [url] - WebSocket connection established
  • ❌ Disconnected from [url] - Connection lost
  • 🔁 Reconnecting... - Attempting to reconnect
  • 🔄 Restoring subscriptions... - Resubscribing after reconnect