From b011c533747511ec121a9e87c8d7fc4cd271f301 Mon Sep 17 00:00:00 2001 From: Bill Lynch Date: Mon, 23 Oct 2023 11:18:11 +0100 Subject: [PATCH] style(web,client-http,examples): tidy imports and formatting --- .../src/client/ConfidenceClient.ts | 22 +++++++++---------- .../src/ConfidenceWebProvider.ts | 4 ++++ .../openfeature-web-provider/src/factory.ts | 5 +++-- yarn.lock | 13 ----------- 4 files changed, 18 insertions(+), 26 deletions(-) diff --git a/packages/client-http/src/client/ConfidenceClient.ts b/packages/client-http/src/client/ConfidenceClient.ts index 8c8dd7fe..8b2becef 100644 --- a/packages/client-http/src/client/ConfidenceClient.ts +++ b/packages/client-http/src/client/ConfidenceClient.ts @@ -12,6 +12,17 @@ type ResolveRequest = { apply?: boolean; flags?: string[]; }; +type ResolveResponse = { + resolvedFlags: ResolvedFlag[]; + resolveToken: string; +}; +type ConfidenceSimpleTypes = { boolSchema: {} } | { doubleSchema: {} } | { intSchema: {} } | { stringSchema: {} }; +type ConfidenceFlagSchema = { + schema: { + [key: string]: ConfidenceSimpleTypes | { structSchema: ConfidenceFlagSchema }; + }; +}; + export type ResolvedFlag = { flag: string; variant: string; @@ -19,11 +30,6 @@ export type ResolvedFlag = { flagSchema?: ConfidenceFlagSchema; reason: Configuration.ResolveReason; }; -type ResolveResponse = { - resolvedFlags: ResolvedFlag[]; - resolveToken: string; -}; - export type ConfidenceClientOptions = { fetchImplementation: typeof fetch; clientSecret: string; @@ -35,12 +41,6 @@ export type AppliedFlag = { flag: string; applyTime: string; }; -type ConfidenceSimpleTypes = { boolSchema: {} } | { doubleSchema: {} } | { intSchema: {} } | { stringSchema: {} }; -type ConfidenceFlagSchema = { - schema: { - [key: string]: ConfidenceSimpleTypes | { structSchema: ConfidenceFlagSchema }; - }; -}; export class ConfidenceClient { private readonly backendApplyEnabled: boolean; diff --git a/packages/openfeature-web-provider/src/ConfidenceWebProvider.ts b/packages/openfeature-web-provider/src/ConfidenceWebProvider.ts index 926aa00a..661c1905 100644 --- a/packages/openfeature-web-provider/src/ConfidenceWebProvider.ts +++ b/packages/openfeature-web-provider/src/ConfidenceWebProvider.ts @@ -102,6 +102,7 @@ export class ConfidenceWebProvider implements Provider { } const [flagName, ...pathParts] = flagKey.split('.'); + try { const flag = this.configuration.flags[flagName]; @@ -125,12 +126,14 @@ export class ConfidenceWebProvider implements Provider { reason: 'ERROR', }; } + if (flagValue.value === null) { return { value: defaultValue, reason: mapConfidenceReason(flag.reason), }; } + if (!Configuration.FlagValue.matches(flagValue, defaultValue)) { logger.warn('Value for "%s" is of incorrect type', flagKey); return { @@ -141,6 +144,7 @@ export class ConfidenceWebProvider implements Provider { } this.applyManager.apply(this.configuration.resolveToken, flagName); + logger.info('Value for "%s" successfully evaluated', flagKey); return { value: flagValue.value as T, diff --git a/packages/openfeature-web-provider/src/factory.ts b/packages/openfeature-web-provider/src/factory.ts index 8f4a00d6..9989e0f2 100644 --- a/packages/openfeature-web-provider/src/factory.ts +++ b/packages/openfeature-web-provider/src/factory.ts @@ -1,7 +1,8 @@ +import { Provider } from '@openfeature/web-sdk'; import { ConfidenceWebProvider } from './ConfidenceWebProvider'; import { ConfidenceClient } from '@spotify-confidence/client-http'; -export type ConfidenceWebProviderFactoryOptions = { +type ConfidenceWebProviderFactoryOptions = { region: 'eu' | 'us'; fetchImplementation: typeof fetch; clientSecret: string; @@ -11,7 +12,7 @@ export type ConfidenceWebProviderFactoryOptions = { }; }; -export function createConfidenceWebProvider(options: ConfidenceWebProviderFactoryOptions): ConfidenceWebProvider { +export function createConfidenceWebProvider(options: ConfidenceWebProviderFactoryOptions): Provider { const confidenceClient = new ConfidenceClient({ ...options, apply: !options.apply, diff --git a/yarn.lock b/yarn.lock index b23dbec5..01eb0d66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2787,19 +2787,6 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@spotify-confidence/integration-react@^0.0.4": - version "0.0.4" - resolved "https://registry.yarnpkg.com/@spotify-confidence/integration-react/-/integration-react-0.0.4.tgz#383afc78c2db608b1bf75cb41c53d17512b6a77d" - integrity sha512-4NPbuMTweAz8sjsiEdFNBcB7im5XeETDc7ysyoLWw3vSN407fww+e3XDDhon+advI47TYvlUdvlEN75mOGnW4g== - -"@spotify-confidence/openfeature-server-provider@^0.0.3": - version "0.0.3" - resolved "https://registry.yarnpkg.com/@spotify-confidence/openfeature-server-provider/-/openfeature-server-provider-0.0.3.tgz#e424b2626f291037c00133171a01c4915981b6d4" - integrity sha512-GaOyWe8yOC//LYHe+K3pn2wXUph88doXoLOz/6nup+J/xDc2F7kQIsFkA+TE+fI27CH8iaPUbO8ledTdKcYFjw== - dependencies: - "@spotify-confidence/client-http" "^0.0.2" - fast-deep-equal "^3.1.3" - "@spotify/eslint-config-base@^15.0.0": version "15.0.0" resolved "https://registry.yarnpkg.com/@spotify/eslint-config-base/-/eslint-config-base-15.0.0.tgz#fa8a003e656b1c14694528a487bb9e974e013e4d"