Something went wrong. Try again.
This repository has no description
Something went wrong. Try again.
2.4 kB · 78 lines
TypeScript
at main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879import * as Data from "effect/Data";
export class DomainResourceConflict extends Data.TaggedError( "DomainResourceConflict",) { readonly code = "resource_conflict"; override readonly message = this.code;}
export class DomainReauthorizationRequired extends Data.TaggedError( "DomainReauthorizationRequired",) { readonly code = "reauthorization_required"; override readonly message = this.code;}
export class DomainTemporarilyUnavailable extends Data.TaggedError( "DomainTemporarilyUnavailable",) { readonly code = "temporarily_unavailable"; override readonly message = this.code;}
export class DomainSetupRequired extends Data.TaggedError( "DomainSetupRequired",) { readonly code = "setup_required"; override readonly message = this.code;}
export class DomainAccountDenied extends Data.TaggedError( "DomainAccountDenied",) { readonly code = "account_denied"; override readonly message = this.code;}
export class DomainInvalidHostname extends Data.TaggedError( "DomainInvalidHostname",) { readonly code = "invalid_hostname"; override readonly message = this.code;}
export class DomainHttpsPending extends Data.TaggedError("DomainHttpsPending") { readonly code = "https_pending"; override readonly message = this.code;}
export class DomainAttachmentOutcomeUnknown extends Data.TaggedError( "DomainAttachmentOutcomeUnknown",) { readonly code = "attachment_outcome_unknown"; override readonly message = this.code;}
const errors = { resource_conflict: DomainResourceConflict, reauthorization_required: DomainReauthorizationRequired, temporarily_unavailable: DomainTemporarilyUnavailable, setup_required: DomainSetupRequired, account_denied: DomainAccountDenied, invalid_hostname: DomainInvalidHostname, https_pending: DomainHttpsPending, attachment_outcome_unknown: DomainAttachmentOutcomeUnknown,};
export type DomainErrorCode = keyof typeof errors;export type DomainFailure = InstanceType<(typeof errors)[DomainErrorCode]>;export function domainFailure(code: DomainErrorCode): DomainFailure { return new errors[code]();}export function isDomainFailure(error: unknown): error is DomainFailure { return Object.values(errors).some((ErrorType) => error instanceof ErrorType);}export function domainErrorCode(error: unknown): DomainErrorCode { return isDomainFailure(error) ? error.code : "temporarily_unavailable";}