• Internal

    Creates a backup from raw data object for the main process. Used when the main process doesn't have access to the renderer's storage object.

    Parameters

    • dataMap: Record<string, string>

      Map of storage keys to their values.

    • OptionalappVersion: string

      Application version to include in metadata (optional).

    Returns { data: BackupData; backupId: string; size: number }

    Backup data object with metadata.

    export function createBackupFromData(
    dataMap: Record<string, string>,
    appVersion?: string,
    ): {
    data: BackupData;
    backupId: string;
    size: number;
    } {
    try {
    console.log("[Backup] Creating backup from raw data...");

    const backupData: BackupData = {
    metadata: createBackupMetadata(appVersion),
    data: {},
    };

    // Add provided data to backup
    for (const key of BACKUPABLE_KEYS) {
    if (dataMap[key]) {
    backupData.data[key] = dataMap[key];
    }
    }

    // Generate backup ID
    const backupId = `backup_${Date.now()}`;

    // Calculate backup size
    const backupSize = JSON.stringify(backupData).length;
    console.log(
    `[Backup] Backup from data size: ${(backupSize / 1024 / 1024).toFixed(2)} MB`,
    );

    console.log("[Backup] Backup from data created successfully:", backupId);
    return { data: backupData, backupId, size: backupSize };
    } catch (error) {
    console.error("[Backup] Failed to create backup from data:", error);
    throw new Error(
    `Failed to create backup from data: ${error instanceof Error ? error.message : "Unknown error"}`,
    );
    }
    }