Example 1: Managing a User Profile

This example creates a master file, adds a user profile as a content file, updates it, and sets up real-time updates.

import { Ulda } from '@zeroam/ulda';

async function manageUserProfile() {
  const ulda = new Ulda('your_api_key', 'https://api.0am.ch', true);
  const masterFileName = 'userVault'; // Unique per API key
  const password = 'securePass123';

  try {
    // Create and connect to master file
    await ulda.createMasterFile(masterFileName, password);
    await ulda.connect(masterFileName, password);

    // Create user profile (content file)
    const profileData = { username: 'Bob', email: 'bob@example.com' };
    await ulda.createContentFile(profileData, 'bobProfile'); // Unique in master file
    console.log('Profile created:', ulda.data['bobProfile'].content);

    // Update user profile
    await ulda.data['bobProfile'].update({ email: 'bob.new@example.com', role: 'user' });
    console.log('Updated profile:', ulda.data['bobProfile'].content);

    // Set up real-time updates
    await ulda.connectToUpdateContentFile((response) => {
      console.log('Profile updated in real-time:', response);
    });
  } catch (error) {
    console.error('Error:', error.message);
  }
}

manageUserProfile().catch(console.error);

Success Output:

Profile created: { username: 'Bob', email: 'bob@example.com' }
Updated profile: { username: 'Bob', email: 'bob.new@example.com', role: 'user' }

Notes:

  • Real-time update output is omitted as it depends on external content:update events.
  • Outputs reflect successful createContentFile and update operations.