Skip to main content

Class: ImportDataCommand

Defined in: electron/services/commands/DatabaseCommands.ts:521

Command for importing application data from JSON.

Remarks

Encapsulates the logic for importing data, updating the cache, and emitting a success event. Also emits a cache:invalidated event so renderer caches can resynchronize with freshly imported data. Rollback restores the previous cache state. Validation checks for valid JSON and non-empty input.

Extends

Constructors

Constructor

new ImportDataCommand(serviceFactory: DatabaseServiceFactory, eventEmitter: TypedEventBus<UptimeEvents>, cache: StandardizedCache<Site>, data: string): ImportDataCommand

Defined in: electron/services/commands/DatabaseCommands.ts:726

Parameters

serviceFactory

DatabaseServiceFactory

eventEmitter

TypedEventBus<UptimeEvents>

cache

StandardizedCache<Site>

data

string

Returns

ImportDataCommand

Overrides

DatabaseCommand.constructor

Constructor

new ImportDataCommand(context: DatabaseCommandContext & { data: string; }): ImportDataCommand

Defined in: electron/services/commands/DatabaseCommands.ts:733

Parameters

context

DatabaseCommandContext & { data: string; }

Returns

ImportDataCommand

Overrides

DatabaseCommand.constructor

Properties

cache

protected readonly cache: StandardizedCache<Site>

Defined in: electron/services/commands/DatabaseCommands.ts:184

Site cache for data synchronization during operations

Inherited from

DatabaseCommand.cache


eventEmitter

protected readonly eventEmitter: TypedEventBus<UptimeEvents>

Defined in: electron/services/commands/DatabaseCommands.ts:187

Event bus for emitting command execution events

Inherited from

DatabaseCommand.eventEmitter


serviceFactory

protected readonly serviceFactory: DatabaseServiceFactory

Defined in: electron/services/commands/DatabaseCommands.ts:190

Factory for accessing database services and repositories

Inherited from

DatabaseCommand.serviceFactory


configurationManager

protected readonly configurationManager: ConfigurationManager | undefined

Defined in: electron/services/commands/DatabaseCommands.ts:193

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:196

Optional history limit updater for settings propagation

Inherited from

DatabaseCommand.updateHistoryLimit


backupSites

private backupSites: Site[] = []

Defined in: electron/services/commands/DatabaseCommands.ts:523

Backup of current sites for rollback functionality


data

private readonly data: string

Defined in: electron/services/commands/DatabaseCommands.ts:526

JSON data string to be imported

Methods

emitFailureEvent()

protected emitFailureEvent<K>(eventType: K, error: Error, data: Partial<UptimeEvents[K]>): Promise<void>

Defined in: electron/services/commands/DatabaseCommands.ts:213

Internal

Emits a failure event for the command operation.

Type Parameters

K

K extends string

Parameters

eventType

K

The event type to emit.

error

Error

The ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error that occurred.

data

Partial<UptimeEvents[K]> = {}

Additional event data to include in the event payload.

Returns

Promise<void>

Remarks

Used internally to emit a typed event indicating command failure, including error details and additional event data.

Inherited from

DatabaseCommand.emitFailureEvent


emitSuccessEvent()

protected emitSuccessEvent<K>(eventType: K, data: Partial<UptimeEvents[K]>): Promise<void>

Defined in: electron/services/commands/DatabaseCommands.ts:238

Internal

Emits a success event for the command operation.

Type Parameters

K

K extends string

Parameters

eventType

K

The event type to emit.

data

Partial<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:528

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

DatabaseCommand.execute


rollback()

rollback(): Promise<void>

Defined in: electron/services/commands/DatabaseCommands.ts:599

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

DatabaseCommand.rollback


validate()

validate(): Promise<{ errors: string[]; isValid: boolean; }>

Defined in: electron/services/commands/DatabaseCommands.ts:608

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

DatabaseCommand.validate


applyImportedHistoryLimit()

private applyImportedHistoryLimit(settings: Record<string, string>): Promise<void>

Defined in: electron/services/commands/DatabaseCommands.ts:634

Parameters

settings

Record<string, string>

Returns

Promise<void>


validateImportedSites()

private validateImportedSites(sites: ImportSite[]): Promise<Site[]>

Defined in: electron/services/commands/DatabaseCommands.ts:670

Parameters

sites

ImportSite[]

Returns

Promise<Site[]>


getDescription()

getDescription(): string

Defined in: electron/services/commands/DatabaseCommands.ts:763

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:767

Parameters

site

ImportSite

Returns

Site