From b0054f920dc8a36d2eab1b5fb75433405758440e Mon Sep 17 00:00:00 2001 From: Bill Lynch Date: Wed, 22 Nov 2023 17:24:53 +0000 Subject: [PATCH] fix: add Provider Not Ready Error (#680) ## This PR Adds an Error class for the error code Provider Not Ready. To match the other error codes. Signed-off-by: Todd Baert --- packages/server/test/errors.spec.ts | 9 +++++++++ packages/shared/src/errors/index.ts | 1 + .../shared/src/errors/provider-not-ready-error.ts | 12 ++++++++++++ 3 files changed, 22 insertions(+) create mode 100644 packages/shared/src/errors/provider-not-ready-error.ts diff --git a/packages/server/test/errors.spec.ts b/packages/server/test/errors.spec.ts index b472f5215..ae0504e3d 100644 --- a/packages/server/test/errors.spec.ts +++ b/packages/server/test/errors.spec.ts @@ -4,6 +4,7 @@ import { GeneralError, InvalidContextError, ParseError, + ProviderNotReadyError, TargetingKeyMissingError, TypeMismatchError, } from '../src'; @@ -56,4 +57,12 @@ describe('Errors', () => { expect(error.name).toBe('InvalidContextError'); expect(error instanceof InvalidContextError).toBe(true); }); + + it('ProviderNotReadyError', () => { + const error = new ProviderNotReadyError('message'); + expect(error.message).toBe('message'); + expect(error.code).toBe(ErrorCode.PROVIDER_NOT_READY); + expect(error.name).toBe('ProviderNotReadyError'); + expect(error instanceof ProviderNotReadyError).toBe(true); + }); }); diff --git a/packages/shared/src/errors/index.ts b/packages/shared/src/errors/index.ts index 24952fa6f..6a58e0c82 100644 --- a/packages/shared/src/errors/index.ts +++ b/packages/shared/src/errors/index.ts @@ -5,3 +5,4 @@ export * from './type-mismatch-error'; export * from './targeting-key-missing-error'; export * from './invalid-context-error'; export * from './open-feature-error-abstract'; +export * from './provider-not-ready-error'; diff --git a/packages/shared/src/errors/provider-not-ready-error.ts b/packages/shared/src/errors/provider-not-ready-error.ts new file mode 100644 index 000000000..7aeea524d --- /dev/null +++ b/packages/shared/src/errors/provider-not-ready-error.ts @@ -0,0 +1,12 @@ +import { OpenFeatureError } from './open-feature-error-abstract'; +import { ErrorCode } from '../evaluation'; + +export class ProviderNotReadyError extends OpenFeatureError { + code: ErrorCode; + constructor(message?: string) { + super(message); + Object.setPrototypeOf(this, ProviderNotReadyError.prototype); + this.name = 'ProviderNotReadyError'; + this.code = ErrorCode.PROVIDER_NOT_READY; + } +}