Signal-Desktop/ts/services/backups/errors.ts

52 lines
1.3 KiB
TypeScript

// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
/* eslint-disable max-classes-per-file */
import type Long from 'long';
import { InstallScreenBackupError } from '../../types/InstallScreen';
export class BackupInstallerError extends Error {
constructor(
name: string,
public readonly installerError: InstallScreenBackupError
) {
super(name);
}
}
export class UnsupportedBackupVersion extends BackupInstallerError {
constructor(version: Long) {
super(
`Unsupported backup version: ${version}`,
InstallScreenBackupError.UnsupportedVersion
);
}
}
export class BackupDownloadFailedError extends BackupInstallerError {
constructor() {
super('BackupDownloadFailedError', InstallScreenBackupError.Retriable);
}
}
export class BackupProcessingError extends BackupInstallerError {
constructor(cause: Error) {
super('BackupProcessingError', InstallScreenBackupError.Fatal);
this.cause = cause;
}
}
export class BackupImportCanceledError extends BackupInstallerError {
constructor() {
super('BackupImportCanceledError', InstallScreenBackupError.Canceled);
}
}
export class RelinkRequestedError extends BackupInstallerError {
constructor() {
super('RelinkRequestedError', InstallScreenBackupError.Fatal);
}
}