Class: ImportDataCommand
Defined in: electron/services/commands/DatabaseCommands.ts:523
Command for importing app data from JSON.
Remarks
Encapsulates the logic for importing data, updating the cache, and emitting success events. The persistence transaction is the commit boundary: pre-commit failures may restore the previous cache, while post-commit cache and event synchronization failures are logged without reporting the durable import as failed. Validation checks for non-empty JSON plus schema compliance via the shared import/export Zod schemas.
Hierarchy
Extends
DatabaseCommand<boolean>
Constructors
Constructor
new ImportDataCommand(
serviceFactory: DatabaseCommandServiceFactory,
eventEmitter: TypedEventBus<UptimeEvents>,
cache: StandardizedCache<Site>,
data: string): ImportDataCommand;
Defined in: electron/services/commands/DatabaseCommands.ts:811
Parameters
serviceFactory
eventEmitter
cache
data
string
Returns
ImportDataCommand
Overrides
Constructor
new ImportDataCommand(context: DatabaseCommandContext & {
data: string;
}): ImportDataCommand;
Defined in: electron/services/commands/DatabaseCommands.ts:818
Parameters
context
DatabaseCommandContext & {
data: string;
}
Returns
ImportDataCommand
Overrides
Properties
cache
protected readonly cache: StandardizedCache<Site>;
Defined in: electron/services/commands/DatabaseCommands.ts:140
Site cache for data synchronization during operations
Inherited from
eventEmitter
protected readonly eventEmitter: TypedEventBus<UptimeEvents>;
Defined in: electron/services/commands/DatabaseCommands.ts:143
Event bus for emitting command execution events
Inherited from
serviceFactory
protected readonly serviceFactory: DatabaseCommandServiceFactory;
Defined in: electron/services/commands/DatabaseCommands.ts:146
Factory for accessing database services and repositories
Inherited from
DatabaseCommand.serviceFactory
configurationManager
protected readonly configurationManager:
| ConfigurationManager
| undefined;
Defined in: electron/services/commands/DatabaseCommands.ts:149
Optional configuration manager used for validation flows
Inherited from
DatabaseCommand.configurationManager
updateHistoryLimit
protected readonly updateHistoryLimit:
| ((limit: number) => Promise<void>)
| undefined;
Defined in: electron/services/commands/DatabaseCommands.ts:152
Optional history limit updater for settings propagation
Inherited from
DatabaseCommand.updateHistoryLimit
backupSites
private backupSites: Site[] = [];
Defined in: electron/services/commands/DatabaseCommands.ts:525
Backup of current sites for rollback functionality
data
private readonly data: string;
Defined in: electron/services/commands/DatabaseCommands.ts:528
JSON data string to be imported
persistenceCommitted
private persistenceCommitted: boolean = false;
Defined in: electron/services/commands/DatabaseCommands.ts:531
Whether the destructive import transaction has committed.
Methods
emitSuccessEvent()
protected emitSuccessEvent<K>(eventType: K, data: Partial<EventPayload<UptimeEvents, K>>): Promise<void>;
Defined in: electron/services/commands/DatabaseCommands.ts:167
Internal
Emits a success event for the command operation.
Type Parameters
K
K extends EventKey<UptimeEvents>
Parameters
eventType
K
The event type to emit.
data
Partial<EventPayload<UptimeEvents, K>>
Additional event data to include in the event payload.
Returns
Promise<void>
Remarks
Used internally to emit a typed event indicating command success, including additional event data.
Inherited from
DatabaseCommand.emitSuccessEvent
execute()
execute(): Promise<boolean>;
Defined in: electron/services/commands/DatabaseCommands.ts:533
Executes the command operation.
Returns
Promise<boolean>
Promise resolving to the operation result.
Remarks
Performs the main database operation encapsulated by the command.
Throws
When command execution fails.
Overrides
rollback()
rollback(): Promise<void>;
Defined in: electron/services/commands/DatabaseCommands.ts:619
Rolls back the command operation if possible.
Returns
Promise<void>
Promise resolving when rollback is complete.
Remarks
Attempts to revert the effects of the command. Not all commands require rollback.
Overrides
validate()
validate(): Promise<{
errors: string[];
isValid: boolean;
}>;
Defined in: electron/services/commands/DatabaseCommands.ts:634
Validates the command before execution.
Returns
Promise<{
errors: string[];
isValid: boolean;
}>
Promise resolving to validation result.
Remarks
Ensures the command is in a valid state before execution. Returns a validation result with errors if any.
Overrides
applyImportedHistoryLimit()
private applyImportedHistoryLimit(importedHistoryLimit: number | undefined): Promise<void>;
Defined in: electron/services/commands/DatabaseCommands.ts:680
Parameters
importedHistoryLimit
number | undefined
Returns
Promise<void>
parseImportedHistoryLimit()
private parseImportedHistoryLimit(settings: Record<string, string>): number | undefined;
Defined in: electron/services/commands/DatabaseCommands.ts:700
Parameters
settings
Record<string, string>
Returns
number | undefined
refreshCacheAfterCommit()
private refreshCacheAfterCommit(): Promise<Site[]>;
Defined in: electron/services/commands/DatabaseCommands.ts:719
Returns
validateImportedSites()
private validateImportedSites(sites: ImportSite[]): Promise<Site[]>;
Defined in: electron/services/commands/DatabaseCommands.ts:752
Parameters
sites
Returns
getDescription()
getDescription(): string;
Defined in: electron/services/commands/DatabaseCommands.ts:850
Gets a description of the command for logging and debugging.
Returns
string
Human-readable command description.
Overrides
DatabaseCommand.getDescription
toCanonicalSite()
private toCanonicalSite(site: ImportSite): Site;
Defined in: electron/services/commands/DatabaseCommands.ts:854