From 315c72aaf94d2badad282ceb2e59b1ad19c2f3b2 Mon Sep 17 00:00:00 2001 From: Polina Nguen Date: Fri, 20 Nov 2020 10:08:38 -0800 Subject: [PATCH 1/2] Move OptimizelyOptions to shared_types --- packages/optimizely-sdk/lib/index.d.ts | 2 +- .../optimizely-sdk/lib/optimizely/index.ts | 26 ++----------------- packages/optimizely-sdk/lib/shared_types.ts | 23 ++++++++++++++++ 3 files changed, 26 insertions(+), 25 deletions(-) diff --git a/packages/optimizely-sdk/lib/index.d.ts b/packages/optimizely-sdk/lib/index.d.ts index d67063ee9..0024116fc 100644 --- a/packages/optimizely-sdk/lib/index.d.ts +++ b/packages/optimizely-sdk/lib/index.d.ts @@ -53,7 +53,7 @@ declare module '@optimizely/optimizely-sdk' { export type SDKOptions = import ('./shared_types').SDKOptions; - export type OptimizelyOptions = import ('./optimizely').OptimizelyOptions; + export type OptimizelyOptions = import ('./shared_types').OptimizelyOptions; export type UserProfileService = import('./shared_types').UserProfileService; diff --git a/packages/optimizely-sdk/lib/optimizely/index.ts b/packages/optimizely-sdk/lib/optimizely/index.ts index d71db9cbc..8bcc33f3d 100644 --- a/packages/optimizely-sdk/lib/optimizely/index.ts +++ b/packages/optimizely-sdk/lib/optimizely/index.ts @@ -22,10 +22,10 @@ import { EventDispatcher, OnReadyResult, UserProfileService, - DatafileOptions, Variation, FeatureFlag, - FeatureVariable + FeatureVariable, + OptimizelyOptions } from '../shared_types'; import { createProjectConfigManager, ProjectConfigManager } from '../core/project_config/project_config_manager'; import { createNotificationCenter, NotificationCenter } from '../core/notification_center'; @@ -55,28 +55,6 @@ const MODULE_NAME = 'OPTIMIZELY'; const DEFAULT_ONREADY_TIMEOUT = 30000; -/** - * options required to create optimizely object - */ -export interface OptimizelyOptions { - UNSTABLE_conditionEvaluators?: unknown; - clientEngine: string; - clientVersion?: string; - datafile?: string; - datafileOptions?: DatafileOptions; - errorHandler: ErrorHandler; - eventBatchSize?: number; - eventDispatcher: EventDispatcher; - eventFlushInterval?: number; - eventMaxQueueSize?: number; - isValidInstance: boolean; - // TODO[OASIS-6649]: Don't use object type - // eslint-disable-next-line @typescript-eslint/ban-types - jsonSchemaValidator?: object; - logger: LogHandler; - sdkKey?: string; - userProfileService?: UserProfileService | null; -} // TODO: Make feature_key, user_id, variable_key, experiment_key, event_key camelCase export type InputKey = 'feature_key' | 'user_id' | 'variable_key' | 'experiment_key' | 'event_key' | 'variation_id'; diff --git a/packages/optimizely-sdk/lib/shared_types.ts b/packages/optimizely-sdk/lib/shared_types.ts index 725fd0fc7..40bbcd033 100644 --- a/packages/optimizely-sdk/lib/shared_types.ts +++ b/packages/optimizely-sdk/lib/shared_types.ts @@ -110,6 +110,29 @@ export type ObjectWithUnknownProperties = { [key: string]: unknown; } +/** + * options required to create optimizely object + */ +export interface OptimizelyOptions { + UNSTABLE_conditionEvaluators?: unknown; + clientEngine: string; + clientVersion?: string; + datafile?: string; + datafileOptions?: DatafileOptions; + errorHandler: ErrorHandler; + eventBatchSize?: number; + eventDispatcher: EventDispatcher; + eventFlushInterval?: number; + eventMaxQueueSize?: number; + isValidInstance: boolean; + // TODO[OASIS-6649]: Don't use object type + // eslint-disable-next-line @typescript-eslint/ban-types + jsonSchemaValidator?: object; + logger: LogHandler; + sdkKey?: string; + userProfileService?: UserProfileService | null; +} + /** * Optimizely Config Entities */ From 1e2b6512ea556d3476e1110dbba612d47fe287ae Mon Sep 17 00:00:00 2001 From: Polina Nguen Date: Fri, 20 Nov 2020 10:11:54 -0800 Subject: [PATCH 2/2] Update changelog --- packages/optimizely-sdk/CHANGELOG.MD | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/optimizely-sdk/CHANGELOG.MD b/packages/optimizely-sdk/CHANGELOG.MD index a4f632c7c..313866133 100644 --- a/packages/optimizely-sdk/CHANGELOG.MD +++ b/packages/optimizely-sdk/CHANGELOG.MD @@ -6,6 +6,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). ## [Unreleased] +- Refactored TypeScript type definitions to have `OptimizelyOptions` imported from `shared_types` to provide isolation from internal modules ([#629](https://github.com/optimizely/javascript-sdk/pull/629)) ## [4.4.2] - November 19, 2020