Interface for a backup service.

interface BackupServiceInterface {
    createBackup: (data?: BackupCreateData) => Promise<void>;
    delete: (backup: BackupEntity) => Promise<void>;
    init: () => void | Promise<void>;
    isCreatingBackup: BehaviorSubject<boolean>;
    isRestoringBackup: BehaviorSubject<boolean>;
    resolveBackupResource: (
        resource: BackupResourceEntity,
    ) =>
        | undefined
        | Newable<BackupResourceInterface>
        | Promise<undefined | Newable<BackupResourceInterface>>;
    resolveData: (
        transports: BackupTransportInterface[],
        resource: BackupResourceEntity,
        backup: BackupEntity,
    ) => Readable | Promise<Readable>;
    resolveTransports: (
        resource: BackupResourceEntity,
    ) =>
        | undefined
        | BackupTransportInterface[]
        | Promise<undefined | BackupTransportInterface[]>;
    restore: (backup: BackupEntity) => Promise<void>;
}

Implemented by

Properties

createBackup: (data?: BackupCreateData) => Promise<void>

Starts a new backup based on the given configuration.

delete: (backup: BackupEntity) => Promise<void>

Deletes the given backup.

init: () => void | Promise<void>

Initializes the service.

isCreatingBackup: BehaviorSubject<boolean>

A subject that contains whether or not a backup is currently being created.

isRestoringBackup: BehaviorSubject<boolean>

A subject that contains whether or not a backup is currently being restored.

resolveBackupResource: (
    resource: BackupResourceEntity,
) =>
    | undefined
    | Newable<BackupResourceInterface>
    | Promise<undefined | Newable<BackupResourceInterface>>

Resolves a backup resource based on the given entity.

resolveData: (
    transports: BackupTransportInterface[],
    resource: BackupResourceEntity,
    backup: BackupEntity,
) => Readable | Promise<Readable>

Resolves the actual backed up data for the given resource and transports.

resolveTransports: (
    resource: BackupResourceEntity,
) =>
    | undefined
    | BackupTransportInterface[]
    | Promise<undefined | BackupTransportInterface[]>

Resolve the transports for the given backup resource.

restore: (backup: BackupEntity) => Promise<void>

Restores the given backup.