Example 2: Batch Operations on Content Files

This example demonstrates creating multiple content files, listing them, and performing batch updates.

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

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

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

    // Create multiple content files
    const files = [
      { name: 'file1', data: { value: 10 } },
      { name: 'file2', data: { value: 20 } }
    ];
    for (const { name, data } of files) {
      await ulda.createContentFile(data, name); // Unique names in master file
    }

    // List all files
    console.log('All files:');
    for (const [name, file] of Object.entries(ulda.data)) {
      console.log(`File: ${name}, Content:`, file.content);
    }

    // Batch update: increment values
    for (const name of Object.keys(ulda.data)) {
      const currentValue = ulda.data[name].content.value;
      await ulda.data[name].update({ value: currentValue + 5 });
    }

    console.log('After batch update:');
    for (const [name, file] of Object.entries(ulda.data)) {
      console.log(`File: ${name}, Content:`, file.content);
    }
  } catch (error) {
    console.error('Error:', error.message);
  }
}

batchOperations().catch(console.error);

Success Output:

All files:
File: file1, Content: { value: 10 }
File: file2, Content: { value: 20 }
After batch update:
File: file1, Content: { value: 15 }
File: file2, Content: { value: 25 }

Notes:

  • Outputs reflect successful createContentFile and update operations for multiple files.
  • Lists files before and after batch updates to show changes.