js-sdk/packages/shared/src/errors/index.ts

46 lines
1.5 KiB
TypeScript

import { ErrorCode } from '../evaluation';
import { FlagNotFoundError } from './flag-not-found-error';
import { GeneralError } from './general-error';
import { InvalidContextError } from './invalid-context-error';
import { OpenFeatureError } from './open-feature-error-abstract';
import { ParseError } from './parse-error';
import { ProviderFatalError } from './provider-fatal-error';
import { ProviderNotReadyError } from './provider-not-ready-error';
import { TargetingKeyMissingError } from './targeting-key-missing-error';
import { TypeMismatchError } from './type-mismatch-error';
const instantiateErrorByErrorCode = (errorCode: ErrorCode, message?: string): OpenFeatureError => {
switch (errorCode) {
case ErrorCode.FLAG_NOT_FOUND:
return new FlagNotFoundError(message);
case ErrorCode.PARSE_ERROR:
return new ParseError(message);
case ErrorCode.TYPE_MISMATCH:
return new TypeMismatchError(message);
case ErrorCode.TARGETING_KEY_MISSING:
return new TargetingKeyMissingError(message);
case ErrorCode.INVALID_CONTEXT:
return new InvalidContextError(message);
case ErrorCode.PROVIDER_NOT_READY:
return new ProviderNotReadyError(message);
case ErrorCode.PROVIDER_FATAL:
return new ProviderFatalError(message);
default:
return new GeneralError(message);
}
};
export {
FlagNotFoundError,
GeneralError,
InvalidContextError,
ParseError,
ProviderFatalError,
ProviderNotReadyError,
TargetingKeyMissingError,
TypeMismatchError,
OpenFeatureError,
instantiateErrorByErrorCode,
};