Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
2.7 kB · 85 lines
TypeScript
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586import * as Data from "effect/Data";
export class RecoveryRequired extends Data.TaggedError("RecoveryRequired") { readonly code = "recovery_required"; override readonly message = this.code;}
export class ArtifactUnavailable extends Data.TaggedError( "ArtifactUnavailable",) { readonly code = "artifact_unavailable"; override readonly message = this.code;}
export class SetupRequired extends Data.TaggedError("SetupRequired") { readonly code = "setup_required"; override readonly message = this.code;}
export class ReauthorizationRequired extends Data.TaggedError( "ReauthorizationRequired",) { readonly code = "reauthorization_required"; override readonly message = this.code;}
export class AccountDenied extends Data.TaggedError("AccountDenied") { readonly code = "account_denied"; override readonly message = this.code;}
export class ResourceConflict extends Data.TaggedError("ResourceConflict") { readonly code = "resource_conflict"; override readonly message = this.code;}
export class DeploymentFailed extends Data.TaggedError("DeploymentFailed") { readonly code = "deployment_failed"; override readonly message = this.code;}
export class HealthFailed extends Data.TaggedError("HealthFailed") { readonly code = "health_failed"; override readonly message = this.code;}
export class TemporarilyUnavailable extends Data.TaggedError( "TemporarilyUnavailable",) { readonly code = "temporarily_unavailable"; override readonly message = this.code;}
const errors = { recovery_required: RecoveryRequired, artifact_unavailable: ArtifactUnavailable, setup_required: SetupRequired, reauthorization_required: ReauthorizationRequired, account_denied: AccountDenied, resource_conflict: ResourceConflict, deployment_failed: DeploymentFailed, health_failed: HealthFailed, temporarily_unavailable: TemporarilyUnavailable,};
export type DeploymentCode = keyof typeof errors;export type DeploymentFailure = InstanceType<(typeof errors)[DeploymentCode]>;export const deploymentCodes = Object.keys(errors) as DeploymentCode[];
export function deploymentFailure(code: DeploymentCode): DeploymentFailure { return new errors[code]();}
export function isDeploymentFailure( error: unknown,): error is DeploymentFailure { return Object.values(errors).some((ErrorType) => error instanceof ErrorType);}
export function deploymentCode(error: unknown): DeploymentCode { if (isDeploymentFailure(error)) return error.code; // Never pass provider bodies, network URLs, credentials or arbitrary messages // into Workflow error history or installation metadata. return "temporarily_unavailable";}