@itwin/core-bentley
Version:
Bentley JavaScript core components
399 lines • 20.2 kB
JavaScript
/*---------------------------------------------------------------------------------------------
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
* See LICENSE.md in the project root for license terms and full copyright notice.
*--------------------------------------------------------------------------------------------*/
/** @packageDocumentation
* @module Errors
*/
import { BentleyStatus, BriefcaseStatus, ChangeSetStatus, GeoServiceStatus, HttpStatus, IModelHubStatus, IModelStatus, RealityDataStatus, RpcInterfaceStatus, } from "./BentleyError";
import { RepositoryStatus } from "./internal/RepositoryStatus";
/** A group of related statuses for aggregate reporting purposes.
* @alpha
*/
export class StatusCategory {
static handlers = new Set();
static for(error) {
for (const handler of this.handlers) {
const category = handler(error);
if (category) {
return category;
}
}
const errorNumber = error.errorNumber;
if (typeof errorNumber === "number")
return lookupHttpStatusCategory(errorNumber);
return new UnknownError();
}
}
/***
* A success status.
* @alpha
*/
export class SuccessCategory extends StatusCategory {
error = false;
}
/**
* An error status.
* @alpha
*/
export class ErrorCategory extends StatusCategory {
error = true;
}
var HTTP;
(function (HTTP) {
class OK extends SuccessCategory {
name = "OK";
code = 200;
}
HTTP.OK = OK;
class Accepted extends SuccessCategory {
name = "Accepted";
code = 202;
}
HTTP.Accepted = Accepted;
class NoContent extends SuccessCategory {
name = "NoContent";
code = 204;
}
HTTP.NoContent = NoContent;
class BadRequest extends ErrorCategory {
name = "BadRequest";
code = 400;
}
HTTP.BadRequest = BadRequest;
class Unauthorized extends ErrorCategory {
name = "Unauthorized";
code = 401;
}
HTTP.Unauthorized = Unauthorized;
class Forbidden extends ErrorCategory {
name = "Forbidden";
code = 403;
}
HTTP.Forbidden = Forbidden;
class NotFound extends ErrorCategory {
name = "NotFound";
code = 404;
}
HTTP.NotFound = NotFound;
class RequestTimeout extends ErrorCategory {
name = "RequestTimeout";
code = 408;
}
HTTP.RequestTimeout = RequestTimeout;
class Conflict extends ErrorCategory {
name = "Conflict";
code = 409;
}
HTTP.Conflict = Conflict;
class Gone extends ErrorCategory {
name = "Gone";
code = 410;
}
HTTP.Gone = Gone;
class PreconditionFailed extends ErrorCategory {
name = "PreconditionFailed";
code = 412;
}
HTTP.PreconditionFailed = PreconditionFailed;
class ExpectationFailed extends ErrorCategory {
name = "ExpectationFailed";
code = 417;
}
HTTP.ExpectationFailed = ExpectationFailed;
class MisdirectedRequest extends ErrorCategory {
name = "MisdirectedRequest";
code = 421;
}
HTTP.MisdirectedRequest = MisdirectedRequest;
class UnprocessableEntity extends ErrorCategory {
name = "UnprocessableEntity";
code = 422;
}
HTTP.UnprocessableEntity = UnprocessableEntity;
class UpgradeRequired extends ErrorCategory {
name = "UpgradeRequired";
code = 426;
}
HTTP.UpgradeRequired = UpgradeRequired;
class PreconditionRequired extends ErrorCategory {
name = "PreconditionRequired";
code = 428;
}
HTTP.PreconditionRequired = PreconditionRequired;
class TooManyRequests extends ErrorCategory {
name = "TooManyRequests";
code = 429;
}
HTTP.TooManyRequests = TooManyRequests;
class InternalServerError extends ErrorCategory {
name = "InternalServerError";
code = 500;
}
HTTP.InternalServerError = InternalServerError;
class NotImplemented extends ErrorCategory {
name = "NotImplemented";
code = 501;
}
HTTP.NotImplemented = NotImplemented;
})(HTTP || (HTTP = {}));
class Success extends HTTP.OK {
}
class Pending extends HTTP.Accepted {
}
class NoContent extends HTTP.NoContent {
}
class NothingToDo extends HTTP.NoContent {
}
class BadRequest extends HTTP.BadRequest {
}
class Forbidden extends HTTP.Forbidden {
}
class PermissionsViolation extends HTTP.Forbidden {
}
class ReadOnly extends HTTP.Forbidden {
}
class NotFound extends HTTP.NotFound {
}
class NotEnabled extends HTTP.UnprocessableEntity {
}
class NotSupported extends HTTP.UnprocessableEntity {
}
class ValidationError extends HTTP.BadRequest {
}
class Timeout extends HTTP.RequestTimeout {
}
class Conflict extends HTTP.Conflict {
}
class Cancelled extends HTTP.Gone {
}
class ConstraintViolation extends HTTP.Forbidden {
}
class VersioningViolation extends HTTP.Forbidden {
}
class Corruption extends HTTP.InternalServerError {
}
class InvalidData extends HTTP.InternalServerError {
}
class OperationFailed extends HTTP.InternalServerError {
}
class StateViolation extends HTTP.InternalServerError {
}
class Locked extends HTTP.Conflict {
}
class NetworkError extends HTTP.InternalServerError {
}
class Throttled extends HTTP.TooManyRequests {
}
class FileSystemError extends HTTP.InternalServerError {
}
class InternalError extends HTTP.InternalServerError {
}
class UnknownError extends HTTP.InternalServerError {
}
class NotImplemented extends HTTP.NotImplemented {
}
class Aborted extends HTTP.BadRequest {
}
function lookupHttpStatusCategory(statusCode) {
switch (statusCode) {
case BentleyStatus.SUCCESS: return new Success();
case BentleyStatus.ERROR: return new UnknownError();
case IModelStatus.Success: return new Success();
case IModelStatus.AlreadyLoaded: return new StateViolation();
case IModelStatus.AlreadyOpen: return new StateViolation();
case IModelStatus.BadArg: return new ValidationError();
case IModelStatus.BadElement: return new ValidationError();
case IModelStatus.BadModel: return new ValidationError();
case IModelStatus.BadRequest: return new BadRequest();
case IModelStatus.BadSchema: return new ValidationError();
case IModelStatus.CannotUndo: return new OperationFailed();
case IModelStatus.CodeNotReserved: return new StateViolation();
case IModelStatus.DeletionProhibited: return new Forbidden();
case IModelStatus.DuplicateCode: return new Conflict();
case IModelStatus.DuplicateName: return new Conflict();
case IModelStatus.ElementBlockedChange: return new ConstraintViolation();
case IModelStatus.FileAlreadyExists: return new Conflict();
case IModelStatus.FileNotFound: return new NotFound();
case IModelStatus.FileNotLoaded: return new FileSystemError();
case IModelStatus.ForeignKeyConstraint: return new ConstraintViolation();
case IModelStatus.IdExists: return new Conflict();
case IModelStatus.InDynamicTransaction: return new StateViolation();
case IModelStatus.InvalidCategory: return new ValidationError();
case IModelStatus.InvalidCode: return new ValidationError();
case IModelStatus.InvalidCodeSpec: return new ValidationError();
case IModelStatus.InvalidId: return new ValidationError();
case IModelStatus.InvalidName: return new ValidationError();
case IModelStatus.InvalidParent: return new Conflict();
case IModelStatus.InvalidProfileVersion: return new InvalidData();
case IModelStatus.IsCreatingChangeSet: return new StateViolation();
case IModelStatus.LockNotHeld: return new Forbidden();
case IModelStatus.Mismatch2d3d: return new ValidationError();
case IModelStatus.MismatchGcs: return new ValidationError();
case IModelStatus.MissingDomain: return new ValidationError();
case IModelStatus.MissingHandler: return new ValidationError();
case IModelStatus.MissingId: return new ValidationError();
case IModelStatus.NoGeometry: return new NoContent();
case IModelStatus.NoMultiTxnOperation: return new StateViolation();
case IModelStatus.NotEnabled: return new NotEnabled();
case IModelStatus.NotFound: return new NotFound();
case IModelStatus.NotOpen: return new StateViolation();
case IModelStatus.NotOpenForWrite: return new Forbidden();
case IModelStatus.NotSameUnitBase: return new ValidationError();
case IModelStatus.NothingToRedo: return new NothingToDo();
case IModelStatus.NothingToUndo: return new NothingToDo();
case IModelStatus.ParentBlockedChange: return new Forbidden();
case IModelStatus.ReadError: return new FileSystemError();
case IModelStatus.ReadOnly: return new ReadOnly();
case IModelStatus.ReadOnlyDomain: return new ReadOnly();
case IModelStatus.RepositoryManagerError: return new NetworkError();
case IModelStatus.SQLiteError: return new InternalError();
case IModelStatus.TransactionActive: return new StateViolation();
case IModelStatus.UnitsMissing: return new ValidationError();
case IModelStatus.UnknownFormat: return new InvalidData();
case IModelStatus.UpgradeFailed: return new OperationFailed();
case IModelStatus.ValidationFailed: return new ValidationError();
case IModelStatus.VersionTooNew: return new VersioningViolation();
case IModelStatus.VersionTooOld: return new VersioningViolation();
case IModelStatus.ViewNotFound: return new NotFound();
case IModelStatus.WriteError: return new FileSystemError();
case IModelStatus.WrongClass: return new ValidationError();
case IModelStatus.WrongIModel: return new ValidationError();
case IModelStatus.WrongDomain: return new ValidationError();
case IModelStatus.WrongElement: return new ValidationError();
case IModelStatus.WrongHandler: return new ValidationError();
case IModelStatus.WrongModel: return new ValidationError();
case IModelStatus.ConstraintNotUnique: return new ConstraintViolation();
case IModelStatus.NoGeoLocation: return new ValidationError();
case IModelStatus.ServerTimeout: return new Timeout();
case IModelStatus.NoContent: return new NoContent();
case IModelStatus.NotRegistered: return new NotImplemented();
case IModelStatus.FunctionNotFound: return new NotImplemented();
case IModelStatus.NoActiveCommand: return new StateViolation();
case IModelStatus.Aborted: return new Aborted();
case BriefcaseStatus.CannotAcquire: return new OperationFailed();
case BriefcaseStatus.CannotDownload: return new OperationFailed();
case BriefcaseStatus.CannotUpload: return new OperationFailed();
case BriefcaseStatus.CannotCopy: return new OperationFailed();
case BriefcaseStatus.CannotDelete: return new OperationFailed();
case BriefcaseStatus.VersionNotFound: return new NotFound();
case BriefcaseStatus.CannotApplyChanges: return new OperationFailed();
case BriefcaseStatus.DownloadCancelled: return new Cancelled();
case BriefcaseStatus.ContainsDeletedChangeSets: return new ValidationError();
case RpcInterfaceStatus.Success: return new Success();
case RpcInterfaceStatus.IncompatibleVersion: return new VersioningViolation();
case ChangeSetStatus.Success: return new Success();
case ChangeSetStatus.ApplyError: return new OperationFailed();
case ChangeSetStatus.ChangeTrackingNotEnabled: return new NotEnabled();
case ChangeSetStatus.CorruptedChangeStream: return new Corruption();
case ChangeSetStatus.FileNotFound: return new NotFound();
case ChangeSetStatus.FileWriteError: return new FileSystemError();
case ChangeSetStatus.HasLocalChanges: return new StateViolation();
case ChangeSetStatus.HasUncommittedChanges: return new StateViolation();
case ChangeSetStatus.InvalidId: return new Corruption();
case ChangeSetStatus.InvalidVersion: return new Corruption();
case ChangeSetStatus.InDynamicTransaction: return new StateViolation();
case ChangeSetStatus.IsCreatingChangeSet: return new StateViolation();
case ChangeSetStatus.IsNotCreatingChangeSet: return new StateViolation();
case ChangeSetStatus.MergePropagationError: return new OperationFailed();
case ChangeSetStatus.NothingToMerge: return new NothingToDo();
case ChangeSetStatus.NoTransactions: return new OperationFailed();
case ChangeSetStatus.ParentMismatch: return new ValidationError();
case ChangeSetStatus.SQLiteError: return new InternalError();
case ChangeSetStatus.WrongDgnDb: return new ValidationError();
case ChangeSetStatus.CouldNotOpenDgnDb: return new OperationFailed();
case ChangeSetStatus.MergeSchemaChangesOnOpen: return new BadRequest();
case ChangeSetStatus.ReverseOrReinstateSchemaChanges: return new Conflict();
case ChangeSetStatus.ProcessSchemaChangesOnOpen: return new BadRequest();
case ChangeSetStatus.CannotMergeIntoReadonly: return new ValidationError();
case ChangeSetStatus.CannotMergeIntoMaster: return new ValidationError();
case ChangeSetStatus.CannotMergeIntoReversed: return new ValidationError();
case RepositoryStatus.Success: return new Success();
case RepositoryStatus.ServerUnavailable: return new NetworkError();
case RepositoryStatus.LockAlreadyHeld: return new Conflict();
case RepositoryStatus.SyncError: return new NetworkError();
case RepositoryStatus.InvalidResponse: return new NetworkError();
case RepositoryStatus.PendingTransactions: return new StateViolation();
case RepositoryStatus.LockUsed: return new StateViolation();
case RepositoryStatus.CannotCreateChangeSet: return new InternalError();
case RepositoryStatus.InvalidRequest: return new NetworkError();
case RepositoryStatus.ChangeSetRequired: return new StateViolation();
case RepositoryStatus.CodeUnavailable: return new Conflict();
case RepositoryStatus.CodeNotReserved: return new StateViolation();
case RepositoryStatus.CodeUsed: return new StateViolation();
case RepositoryStatus.LockNotHeld: return new Forbidden();
case RepositoryStatus.RepositoryIsLocked: return new Locked();
case RepositoryStatus.ChannelConstraintViolation: return new ConstraintViolation();
case HttpStatus.Success: return new Success();
case IModelHubStatus.Success: return new Success();
case IModelHubStatus.Unknown: return new UnknownError();
case IModelHubStatus.MissingRequiredProperties: return new ValidationError();
case IModelHubStatus.InvalidPropertiesValues: return new ValidationError();
case IModelHubStatus.UserDoesNotHavePermission: return new PermissionsViolation();
case IModelHubStatus.UserDoesNotHaveAccess: return new PermissionsViolation();
case IModelHubStatus.InvalidBriefcase: return new ValidationError();
case IModelHubStatus.BriefcaseDoesNotExist: return new NotFound();
case IModelHubStatus.BriefcaseDoesNotBelongToUser: return new PermissionsViolation();
case IModelHubStatus.AnotherUserPushing: return new StateViolation();
case IModelHubStatus.ChangeSetAlreadyExists: return new Conflict();
case IModelHubStatus.ChangeSetDoesNotExist: return new NotFound();
case IModelHubStatus.FileIsNotUploaded: return new StateViolation();
case IModelHubStatus.iModelIsNotInitialized: return new StateViolation();
case IModelHubStatus.ChangeSetPointsToBadSeed: return new InvalidData();
case IModelHubStatus.OperationFailed: return new OperationFailed();
case IModelHubStatus.PullIsRequired: return new StateViolation();
case IModelHubStatus.MaximumNumberOfBriefcasesPerUser: return new Throttled();
case IModelHubStatus.MaximumNumberOfBriefcasesPerUserPerMinute: return new Throttled();
case IModelHubStatus.DatabaseTemporarilyLocked: return new Locked();
case IModelHubStatus.iModelIsLocked: return new Locked();
case IModelHubStatus.CodesExist: return new Conflict();
case IModelHubStatus.LocksExist: return new Conflict();
case IModelHubStatus.iModelAlreadyExists: return new Conflict();
case IModelHubStatus.iModelDoesNotExist: return new NotFound();
case IModelHubStatus.FileDoesNotExist: return new NotFound();
case IModelHubStatus.FileAlreadyExists: return new Conflict();
case IModelHubStatus.LockDoesNotExist: return new NotFound();
case IModelHubStatus.LockOwnedByAnotherBriefcase: return new Conflict();
case IModelHubStatus.CodeStateInvalid: return new StateViolation();
case IModelHubStatus.CodeReservedByAnotherBriefcase: return new Conflict();
case IModelHubStatus.CodeDoesNotExist: return new NotFound();
case IModelHubStatus.EventTypeDoesNotExist: return new NotFound();
case IModelHubStatus.EventSubscriptionDoesNotExist: return new NotFound();
case IModelHubStatus.EventSubscriptionAlreadyExists: return new StateViolation();
case IModelHubStatus.ITwinIdIsNotSpecified: return new ValidationError();
case IModelHubStatus.FailedToGetITwinPermissions: return new OperationFailed();
case IModelHubStatus.FailedToGetITwinMembers: return new OperationFailed();
case IModelHubStatus.ChangeSetAlreadyHasVersion: return new Conflict();
case IModelHubStatus.VersionAlreadyExists: return new Conflict();
case IModelHubStatus.JobSchedulingFailed: return new InternalError();
case IModelHubStatus.ConflictsAggregate: return new Conflict();
case IModelHubStatus.FailedToGetITwinById: return new OperationFailed();
case IModelHubStatus.DatabaseOperationFailed: return new OperationFailed();
case IModelHubStatus.SeedFileInitializationFailed: return new OperationFailed();
case IModelHubStatus.FailedToGetAssetPermissions: return new OperationFailed();
case IModelHubStatus.FailedToGetAssetMembers: return new OperationFailed();
case IModelHubStatus.ITwinDoesNotExist: return new NotFound();
case IModelHubStatus.LockChunkDoesNotExist: return new NotFound();
case IModelHubStatus.CheckpointAlreadyExists: return new Conflict();
case IModelHubStatus.CheckpointDoesNotExist: return new NotFound();
case IModelHubStatus.UndefinedArgumentError: return new ValidationError();
case IModelHubStatus.InvalidArgumentError: return new ValidationError();
case IModelHubStatus.MissingDownloadUrlError: return new ValidationError();
case IModelHubStatus.NotSupportedInBrowser: return new NotSupported();
case IModelHubStatus.FileHandlerNotSet: return new NotImplemented();
case IModelHubStatus.FileNotFound: return new NotFound();
case IModelHubStatus.InitializationTimeout: return new Timeout();
case GeoServiceStatus.Success: return new Success();
case GeoServiceStatus.NoGeoLocation: return new ValidationError();
case GeoServiceStatus.OutOfUsefulRange: return new ValidationError();
case GeoServiceStatus.OutOfMathematicalDomain: return new ValidationError();
case GeoServiceStatus.NoDatumConverter: return new OperationFailed();
case GeoServiceStatus.VerticalDatumConvertError: return new OperationFailed();
case GeoServiceStatus.CSMapError: return new InternalError();
case GeoServiceStatus.Pending: return new Pending(); // eslint-disable-line @typescript-eslint/no-deprecated
case RealityDataStatus.Success: return new Success();
case RealityDataStatus.InvalidData: return new InvalidData();
default: return new UnknownError();
}
}
//# sourceMappingURL=StatusCategory.js.map