Skip to content

Commit

Permalink
Updating error options types
Browse files Browse the repository at this point in the history
  • Loading branch information
HughParry committed Jan 8, 2024
1 parent 7f1ff6a commit 610a218
Showing 1 changed file with 28 additions and 9 deletions.
37 changes: 28 additions & 9 deletions packages/common/src/error.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,34 @@
// limitations under the License.
import { LogLevel, Logger, TranslationKey, getLoggerDefault, i18n as i18next } from './index.js'

type ContextParams = { [key: string]: any }
type ErrorOptions = {
type BaseErrorOptions = {
name?: string
translationKey?: TranslationKey
context?: ContextParams
logger?: Logger
logLevel?: LogLevel
}

type ContextParams = { [key: string]: any }
type ErrorOptions = BaseErrorOptions & { context?: ContextParams }

type EnvContextParams = ContextParams & { missingEnvVars?: string[] }
type EnvErrorOptions = ErrorOptions & { context?: EnvContextParams }

type ContractContextParams = ContextParams
type ContractErrorOptions = ErrorOptions & { context?: ContractContextParams }

type DBContextParams = ContextParams
type DBErrorOptions = ErrorOptions & { context?: DBContextParams }

type CliContextParams = ContextParams
type CliErrorOptions = ErrorOptions & { context?: CliContextParams }

type DatasetContextParams = ContextParams
type DatasetErrorOptions = ErrorOptions & { context?: DatasetContextParams }

type ApiContextParams = ContextParams & { errorCode?: number }
type ApiErrorOptions = ErrorOptions & { context?: ApiContextParams }

export abstract class ProsopoBaseError extends Error {
translationKey: string | undefined
context: ContextParams | undefined
Expand Down Expand Up @@ -89,47 +108,47 @@ export class ProsopoError extends ProsopoBaseError {
}

export class ProsopoEnvError extends ProsopoBaseError {
constructor(error: Error | TranslationKey, options?: ErrorOptions) {
constructor(error: Error | TranslationKey, options?: EnvErrorOptions) {
const errorName = options?.name || 'ProsopoEnvError'
options = { ...options, name: errorName }
super(error, options)
}
}

export class ProsopoContractError extends ProsopoBaseError {
constructor(error: Error | TranslationKey, options?: ErrorOptions) {
constructor(error: Error | TranslationKey, options?: ContractErrorOptions) {
const errorName = options?.name || 'ProsopoContractError'
options = { ...options, name: errorName }
super(error, options)
}
}

export class ProsopoDBError extends ProsopoBaseError {
constructor(error: Error | TranslationKey, options?: ErrorOptions) {
constructor(error: Error | TranslationKey, options?: DBErrorOptions) {
const errorName = options?.name || 'ProsopoDBError'
options = { ...options, name: errorName }
super(error, options)
}
}

export class ProsopoCliError extends ProsopoBaseError {
constructor(error: Error | TranslationKey, options?: ErrorOptions) {
constructor(error: Error | TranslationKey, options?: CliErrorOptions) {
const errorName = options?.name || 'ProsopoCliError'
options = { ...options, name: errorName }
super(error, options)
}
}

export class ProsopoDatasetError extends ProsopoBaseError {
constructor(error: Error | TranslationKey, options?: ErrorOptions) {
constructor(error: Error | TranslationKey, options?: DatasetErrorOptions) {
const errorName = options?.name || 'ProsopoDatasetError'
options = { ...options, name: errorName }
super(error, options)
}
}

export class ProsopoApiError extends ProsopoEnvError {
constructor(error: Error | TranslationKey, options?: ErrorOptions) {
constructor(error: Error | TranslationKey, options?: ApiErrorOptions) {
const errorName = options?.name || 'ProsopoApiError'
const errorCode = options?.context?.errorCode || 500
options = { ...options, name: errorName, context: { ...options?.context, errorCode } }
Expand Down

0 comments on commit 610a218

Please sign in to comment.