46 lines
1.5 KiB
TypeScript
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,
|
|
};
|