@itwin/core-bentley
Version:
Bentley JavaScript core components
405 lines • 23.3 kB
JavaScript
"use strict";
/*---------------------------------------------------------------------------------------------
* 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
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.ErrorCategory = exports.SuccessCategory = exports.StatusCategory = void 0;
const BentleyError_1 = require("./BentleyError");
const RepositoryStatus_1 = require("./internal/RepositoryStatus");
/** A group of related statuses for aggregate reporting purposes.
* @alpha
*/
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();
}
}
exports.StatusCategory = StatusCategory;
/***
* A success status.
* @alpha
*/
class SuccessCategory extends StatusCategory {
error = false;
}
exports.SuccessCategory = SuccessCategory;
/**
* An error status.
* @alpha
*/
class ErrorCategory extends StatusCategory {
error = true;
}
exports.ErrorCategory = ErrorCategory;
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 BentleyError_1.BentleyStatus.SUCCESS: return new Success();
case BentleyError_1.BentleyStatus.ERROR: return new UnknownError();
case BentleyError_1.IModelStatus.Success: return new Success();
case BentleyError_1.IModelStatus.AlreadyLoaded: return new StateViolation();
case BentleyError_1.IModelStatus.AlreadyOpen: return new StateViolation();
case BentleyError_1.IModelStatus.BadArg: return new ValidationError();
case BentleyError_1.IModelStatus.BadElement: return new ValidationError();
case BentleyError_1.IModelStatus.BadModel: return new ValidationError();
case BentleyError_1.IModelStatus.BadRequest: return new BadRequest();
case BentleyError_1.IModelStatus.BadSchema: return new ValidationError();
case BentleyError_1.IModelStatus.CannotUndo: return new OperationFailed();
case BentleyError_1.IModelStatus.CodeNotReserved: return new StateViolation();
case BentleyError_1.IModelStatus.DeletionProhibited: return new Forbidden();
case BentleyError_1.IModelStatus.DuplicateCode: return new Conflict();
case BentleyError_1.IModelStatus.DuplicateName: return new Conflict();
case BentleyError_1.IModelStatus.ElementBlockedChange: return new ConstraintViolation();
case BentleyError_1.IModelStatus.FileAlreadyExists: return new Conflict();
case BentleyError_1.IModelStatus.FileNotFound: return new NotFound();
case BentleyError_1.IModelStatus.FileNotLoaded: return new FileSystemError();
case BentleyError_1.IModelStatus.ForeignKeyConstraint: return new ConstraintViolation();
case BentleyError_1.IModelStatus.IdExists: return new Conflict();
case BentleyError_1.IModelStatus.InDynamicTransaction: return new StateViolation();
case BentleyError_1.IModelStatus.InvalidCategory: return new ValidationError();
case BentleyError_1.IModelStatus.InvalidCode: return new ValidationError();
case BentleyError_1.IModelStatus.InvalidCodeSpec: return new ValidationError();
case BentleyError_1.IModelStatus.InvalidId: return new ValidationError();
case BentleyError_1.IModelStatus.InvalidName: return new ValidationError();
case BentleyError_1.IModelStatus.InvalidParent: return new Conflict();
case BentleyError_1.IModelStatus.InvalidProfileVersion: return new InvalidData();
case BentleyError_1.IModelStatus.IsCreatingChangeSet: return new StateViolation();
case BentleyError_1.IModelStatus.LockNotHeld: return new Forbidden();
case BentleyError_1.IModelStatus.Mismatch2d3d: return new ValidationError();
case BentleyError_1.IModelStatus.MismatchGcs: return new ValidationError();
case BentleyError_1.IModelStatus.MissingDomain: return new ValidationError();
case BentleyError_1.IModelStatus.MissingHandler: return new ValidationError();
case BentleyError_1.IModelStatus.MissingId: return new ValidationError();
case BentleyError_1.IModelStatus.NoGeometry: return new NoContent();
case BentleyError_1.IModelStatus.NoMultiTxnOperation: return new StateViolation();
case BentleyError_1.IModelStatus.NotEnabled: return new NotEnabled();
case BentleyError_1.IModelStatus.NotFound: return new NotFound();
case BentleyError_1.IModelStatus.NotOpen: return new StateViolation();
case BentleyError_1.IModelStatus.NotOpenForWrite: return new Forbidden();
case BentleyError_1.IModelStatus.NotSameUnitBase: return new ValidationError();
case BentleyError_1.IModelStatus.NothingToRedo: return new NothingToDo();
case BentleyError_1.IModelStatus.NothingToUndo: return new NothingToDo();
case BentleyError_1.IModelStatus.ParentBlockedChange: return new Forbidden();
case BentleyError_1.IModelStatus.ReadError: return new FileSystemError();
case BentleyError_1.IModelStatus.ReadOnly: return new ReadOnly();
case BentleyError_1.IModelStatus.ReadOnlyDomain: return new ReadOnly();
case BentleyError_1.IModelStatus.RepositoryManagerError: return new NetworkError();
case BentleyError_1.IModelStatus.SQLiteError: return new InternalError();
case BentleyError_1.IModelStatus.TransactionActive: return new StateViolation();
case BentleyError_1.IModelStatus.UnitsMissing: return new ValidationError();
case BentleyError_1.IModelStatus.UnknownFormat: return new InvalidData();
case BentleyError_1.IModelStatus.UpgradeFailed: return new OperationFailed();
case BentleyError_1.IModelStatus.ValidationFailed: return new ValidationError();
case BentleyError_1.IModelStatus.VersionTooNew: return new VersioningViolation();
case BentleyError_1.IModelStatus.VersionTooOld: return new VersioningViolation();
case BentleyError_1.IModelStatus.ViewNotFound: return new NotFound();
case BentleyError_1.IModelStatus.WriteError: return new FileSystemError();
case BentleyError_1.IModelStatus.WrongClass: return new ValidationError();
case BentleyError_1.IModelStatus.WrongIModel: return new ValidationError();
case BentleyError_1.IModelStatus.WrongDomain: return new ValidationError();
case BentleyError_1.IModelStatus.WrongElement: return new ValidationError();
case BentleyError_1.IModelStatus.WrongHandler: return new ValidationError();
case BentleyError_1.IModelStatus.WrongModel: return new ValidationError();
case BentleyError_1.IModelStatus.ConstraintNotUnique: return new ConstraintViolation();
case BentleyError_1.IModelStatus.NoGeoLocation: return new ValidationError();
case BentleyError_1.IModelStatus.ServerTimeout: return new Timeout();
case BentleyError_1.IModelStatus.NoContent: return new NoContent();
case BentleyError_1.IModelStatus.NotRegistered: return new NotImplemented();
case BentleyError_1.IModelStatus.FunctionNotFound: return new NotImplemented();
case BentleyError_1.IModelStatus.NoActiveCommand: return new StateViolation();
case BentleyError_1.IModelStatus.Aborted: return new Aborted();
case BentleyError_1.BriefcaseStatus.CannotAcquire: return new OperationFailed();
case BentleyError_1.BriefcaseStatus.CannotDownload: return new OperationFailed();
case BentleyError_1.BriefcaseStatus.CannotUpload: return new OperationFailed();
case BentleyError_1.BriefcaseStatus.CannotCopy: return new OperationFailed();
case BentleyError_1.BriefcaseStatus.CannotDelete: return new OperationFailed();
case BentleyError_1.BriefcaseStatus.VersionNotFound: return new NotFound();
case BentleyError_1.BriefcaseStatus.CannotApplyChanges: return new OperationFailed();
case BentleyError_1.BriefcaseStatus.DownloadCancelled: return new Cancelled();
case BentleyError_1.BriefcaseStatus.ContainsDeletedChangeSets: return new ValidationError();
case BentleyError_1.RpcInterfaceStatus.Success: return new Success();
case BentleyError_1.RpcInterfaceStatus.IncompatibleVersion: return new VersioningViolation();
case BentleyError_1.ChangeSetStatus.Success: return new Success();
case BentleyError_1.ChangeSetStatus.ApplyError: return new OperationFailed();
case BentleyError_1.ChangeSetStatus.ChangeTrackingNotEnabled: return new NotEnabled();
case BentleyError_1.ChangeSetStatus.CorruptedChangeStream: return new Corruption();
case BentleyError_1.ChangeSetStatus.FileNotFound: return new NotFound();
case BentleyError_1.ChangeSetStatus.FileWriteError: return new FileSystemError();
case BentleyError_1.ChangeSetStatus.HasLocalChanges: return new StateViolation();
case BentleyError_1.ChangeSetStatus.HasUncommittedChanges: return new StateViolation();
case BentleyError_1.ChangeSetStatus.InvalidId: return new Corruption();
case BentleyError_1.ChangeSetStatus.InvalidVersion: return new Corruption();
case BentleyError_1.ChangeSetStatus.InDynamicTransaction: return new StateViolation();
case BentleyError_1.ChangeSetStatus.IsCreatingChangeSet: return new StateViolation();
case BentleyError_1.ChangeSetStatus.IsNotCreatingChangeSet: return new StateViolation();
case BentleyError_1.ChangeSetStatus.MergePropagationError: return new OperationFailed();
case BentleyError_1.ChangeSetStatus.NothingToMerge: return new NothingToDo();
case BentleyError_1.ChangeSetStatus.NoTransactions: return new OperationFailed();
case BentleyError_1.ChangeSetStatus.ParentMismatch: return new ValidationError();
case BentleyError_1.ChangeSetStatus.SQLiteError: return new InternalError();
case BentleyError_1.ChangeSetStatus.WrongDgnDb: return new ValidationError();
case BentleyError_1.ChangeSetStatus.CouldNotOpenDgnDb: return new OperationFailed();
case BentleyError_1.ChangeSetStatus.MergeSchemaChangesOnOpen: return new BadRequest();
case BentleyError_1.ChangeSetStatus.ReverseOrReinstateSchemaChanges: return new Conflict();
case BentleyError_1.ChangeSetStatus.ProcessSchemaChangesOnOpen: return new BadRequest();
case BentleyError_1.ChangeSetStatus.CannotMergeIntoReadonly: return new ValidationError();
case BentleyError_1.ChangeSetStatus.CannotMergeIntoMaster: return new ValidationError();
case BentleyError_1.ChangeSetStatus.CannotMergeIntoReversed: return new ValidationError();
case RepositoryStatus_1.RepositoryStatus.Success: return new Success();
case RepositoryStatus_1.RepositoryStatus.ServerUnavailable: return new NetworkError();
case RepositoryStatus_1.RepositoryStatus.LockAlreadyHeld: return new Conflict();
case RepositoryStatus_1.RepositoryStatus.SyncError: return new NetworkError();
case RepositoryStatus_1.RepositoryStatus.InvalidResponse: return new NetworkError();
case RepositoryStatus_1.RepositoryStatus.PendingTransactions: return new StateViolation();
case RepositoryStatus_1.RepositoryStatus.LockUsed: return new StateViolation();
case RepositoryStatus_1.RepositoryStatus.CannotCreateChangeSet: return new InternalError();
case RepositoryStatus_1.RepositoryStatus.InvalidRequest: return new NetworkError();
case RepositoryStatus_1.RepositoryStatus.ChangeSetRequired: return new StateViolation();
case RepositoryStatus_1.RepositoryStatus.CodeUnavailable: return new Conflict();
case RepositoryStatus_1.RepositoryStatus.CodeNotReserved: return new StateViolation();
case RepositoryStatus_1.RepositoryStatus.CodeUsed: return new StateViolation();
case RepositoryStatus_1.RepositoryStatus.LockNotHeld: return new Forbidden();
case RepositoryStatus_1.RepositoryStatus.RepositoryIsLocked: return new Locked();
case RepositoryStatus_1.RepositoryStatus.ChannelConstraintViolation: return new ConstraintViolation();
case BentleyError_1.HttpStatus.Success: return new Success();
case BentleyError_1.IModelHubStatus.Success: return new Success();
case BentleyError_1.IModelHubStatus.Unknown: return new UnknownError();
case BentleyError_1.IModelHubStatus.MissingRequiredProperties: return new ValidationError();
case BentleyError_1.IModelHubStatus.InvalidPropertiesValues: return new ValidationError();
case BentleyError_1.IModelHubStatus.UserDoesNotHavePermission: return new PermissionsViolation();
case BentleyError_1.IModelHubStatus.UserDoesNotHaveAccess: return new PermissionsViolation();
case BentleyError_1.IModelHubStatus.InvalidBriefcase: return new ValidationError();
case BentleyError_1.IModelHubStatus.BriefcaseDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.BriefcaseDoesNotBelongToUser: return new PermissionsViolation();
case BentleyError_1.IModelHubStatus.AnotherUserPushing: return new StateViolation();
case BentleyError_1.IModelHubStatus.ChangeSetAlreadyExists: return new Conflict();
case BentleyError_1.IModelHubStatus.ChangeSetDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.FileIsNotUploaded: return new StateViolation();
case BentleyError_1.IModelHubStatus.iModelIsNotInitialized: return new StateViolation();
case BentleyError_1.IModelHubStatus.ChangeSetPointsToBadSeed: return new InvalidData();
case BentleyError_1.IModelHubStatus.OperationFailed: return new OperationFailed();
case BentleyError_1.IModelHubStatus.PullIsRequired: return new StateViolation();
case BentleyError_1.IModelHubStatus.MaximumNumberOfBriefcasesPerUser: return new Throttled();
case BentleyError_1.IModelHubStatus.MaximumNumberOfBriefcasesPerUserPerMinute: return new Throttled();
case BentleyError_1.IModelHubStatus.DatabaseTemporarilyLocked: return new Locked();
case BentleyError_1.IModelHubStatus.iModelIsLocked: return new Locked();
case BentleyError_1.IModelHubStatus.CodesExist: return new Conflict();
case BentleyError_1.IModelHubStatus.LocksExist: return new Conflict();
case BentleyError_1.IModelHubStatus.iModelAlreadyExists: return new Conflict();
case BentleyError_1.IModelHubStatus.iModelDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.FileDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.FileAlreadyExists: return new Conflict();
case BentleyError_1.IModelHubStatus.LockDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.LockOwnedByAnotherBriefcase: return new Conflict();
case BentleyError_1.IModelHubStatus.CodeStateInvalid: return new StateViolation();
case BentleyError_1.IModelHubStatus.CodeReservedByAnotherBriefcase: return new Conflict();
case BentleyError_1.IModelHubStatus.CodeDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.EventTypeDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.EventSubscriptionDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.EventSubscriptionAlreadyExists: return new StateViolation();
case BentleyError_1.IModelHubStatus.ITwinIdIsNotSpecified: return new ValidationError();
case BentleyError_1.IModelHubStatus.FailedToGetITwinPermissions: return new OperationFailed();
case BentleyError_1.IModelHubStatus.FailedToGetITwinMembers: return new OperationFailed();
case BentleyError_1.IModelHubStatus.ChangeSetAlreadyHasVersion: return new Conflict();
case BentleyError_1.IModelHubStatus.VersionAlreadyExists: return new Conflict();
case BentleyError_1.IModelHubStatus.JobSchedulingFailed: return new InternalError();
case BentleyError_1.IModelHubStatus.ConflictsAggregate: return new Conflict();
case BentleyError_1.IModelHubStatus.FailedToGetITwinById: return new OperationFailed();
case BentleyError_1.IModelHubStatus.DatabaseOperationFailed: return new OperationFailed();
case BentleyError_1.IModelHubStatus.SeedFileInitializationFailed: return new OperationFailed();
case BentleyError_1.IModelHubStatus.FailedToGetAssetPermissions: return new OperationFailed();
case BentleyError_1.IModelHubStatus.FailedToGetAssetMembers: return new OperationFailed();
case BentleyError_1.IModelHubStatus.ITwinDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.LockChunkDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.CheckpointAlreadyExists: return new Conflict();
case BentleyError_1.IModelHubStatus.CheckpointDoesNotExist: return new NotFound();
case BentleyError_1.IModelHubStatus.UndefinedArgumentError: return new ValidationError();
case BentleyError_1.IModelHubStatus.InvalidArgumentError: return new ValidationError();
case BentleyError_1.IModelHubStatus.MissingDownloadUrlError: return new ValidationError();
case BentleyError_1.IModelHubStatus.NotSupportedInBrowser: return new NotSupported();
case BentleyError_1.IModelHubStatus.FileHandlerNotSet: return new NotImplemented();
case BentleyError_1.IModelHubStatus.FileNotFound: return new NotFound();
case BentleyError_1.IModelHubStatus.InitializationTimeout: return new Timeout();
case BentleyError_1.GeoServiceStatus.Success: return new Success();
case BentleyError_1.GeoServiceStatus.NoGeoLocation: return new ValidationError();
case BentleyError_1.GeoServiceStatus.OutOfUsefulRange: return new ValidationError();
case BentleyError_1.GeoServiceStatus.OutOfMathematicalDomain: return new ValidationError();
case BentleyError_1.GeoServiceStatus.NoDatumConverter: return new OperationFailed();
case BentleyError_1.GeoServiceStatus.VerticalDatumConvertError: return new OperationFailed();
case BentleyError_1.GeoServiceStatus.CSMapError: return new InternalError();
case BentleyError_1.GeoServiceStatus.Pending: return new Pending(); // eslint-disable-line @typescript-eslint/no-deprecated
case BentleyError_1.RealityDataStatus.Success: return new Success();
case BentleyError_1.RealityDataStatus.InvalidData: return new InvalidData();
default: return new UnknownError();
}
}
//# sourceMappingURL=StatusCategory.js.map