Skip to content

[FSSDK-10950] restructure odp directories #971

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Nov 27, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions lib/index.browser.tests.js
Original file line number Diff line number Diff line change
@@ -26,11 +26,11 @@ import configValidator from './utils/config_validator';
import OptimizelyUserContext from './optimizely_user_context';

import { LOG_MESSAGES, ODP_EVENT_ACTION } from './utils/enums';
import { BrowserOdpManager } from './plugins/odp_manager/index.browser';
import { OdpConfig } from './core/odp/odp_config';
import { BrowserOdpEventManager } from './plugins/odp/event_manager/index.browser';
import { BrowserOdpEventApiManager } from './plugins/odp/event_api_manager/index.browser';
import { OdpEvent } from './core/odp/odp_event';
import { BrowserOdpManager } from './odp/odp_manager.browser';
import { OdpConfig } from './odp/odp_config';
import { BrowserOdpEventManager } from './odp/event_manager/event_manager.browser';
import { BrowserOdpEventApiManager } from './odp/event_manager/event_api_manager.browser';
import { OdpEvent } from './odp/event_manager/odp_event';
import { getMockProjectConfigManager } from './tests/mock/mock_project_config_manager';
import { createProjectConfig } from './project_config/project_config';

6 changes: 3 additions & 3 deletions lib/index.browser.ts
Original file line number Diff line number Diff line change
@@ -24,10 +24,10 @@ import * as enums from './utils/enums';
import * as loggerPlugin from './plugins/logger';
import { createNotificationCenter } from './notification_center';
import { OptimizelyDecideOption, Client, Config, OptimizelyOptions } from './shared_types';
import { BrowserOdpManager } from './plugins/odp_manager/index.browser';
import { BrowserOdpManager } from './odp/odp_manager.browser';
import Optimizely from './optimizely';
import { IUserAgentParser } from './core/odp/user_agent_parser';
import { getUserAgentParser } from './plugins/odp/user_agent_parser/index.browser';
import { IUserAgentParser } from './odp/ua_parser/user_agent_parser';
import { getUserAgentParser } from './odp/ua_parser/ua_parser.browser';
import * as commonExports from './common_exports';
import { PollingConfigManagerConfig } from './project_config/config_manager_factory';
import { createPollingProjectConfigManager } from './project_config/config_manager_factory.browser';
2 changes: 1 addition & 1 deletion lib/index.node.ts
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@ import defaultErrorHandler from './plugins/error_handler';
import defaultEventDispatcher from './event_processor/event_dispatcher/default_dispatcher.node';
import { createNotificationCenter } from './notification_center';
import { OptimizelyDecideOption, Client, Config } from './shared_types';
import { NodeOdpManager } from './plugins/odp_manager/index.node';
import { NodeOdpManager } from './odp/odp_manager.node';
import * as commonExports from './common_exports';
import { createPollingProjectConfigManager } from './project_config/config_manager_factory.node';
import { createForwardingEventProcessor, createBatchEventProcessor } from './event_processor/event_processor_factory.node';
2 changes: 1 addition & 1 deletion lib/index.react_native.ts
Original file line number Diff line number Diff line change
@@ -23,7 +23,7 @@ import * as loggerPlugin from './plugins/logger/index.react_native';
import defaultEventDispatcher from './event_processor/event_dispatcher/default_dispatcher.browser';
import { createNotificationCenter } from './notification_center';
import { OptimizelyDecideOption, Client, Config } from './shared_types';
import { BrowserOdpManager } from './plugins/odp_manager/index.browser';
import { BrowserOdpManager } from './odp/odp_manager.browser';
import * as commonExports from './common_exports';
import { createPollingProjectConfigManager } from './project_config/config_manager_factory.react_native';
import { createBatchEventProcessor, createForwardingEventProcessor } from './event_processor/event_processor_factory.react_native';
Original file line number Diff line number Diff line change
@@ -14,11 +14,11 @@
* limitations under the License.
*/

import { OdpEvent } from '../../../core/odp/odp_event';
import { OdpEventApiManager } from '../../../core/odp/odp_event_api_manager';
import { LogLevel } from '../../../modules/logging';
import { OdpConfig, OdpIntegrationConfig } from '../../../core/odp/odp_config';
import { HttpMethod } from '../../../utils/http_request_handler/http';
import { OdpEvent } from './odp_event';
import { OdpEventApiManager } from './odp_event_api_manager';
import { LogLevel } from '../../modules/logging';
import { OdpConfig } from '../odp_config';
import { HttpMethod } from '../../utils/http_request_handler/http';

const EVENT_SENDING_FAILURE_MESSAGE = 'ODP event send failed';

Original file line number Diff line number Diff line change
@@ -13,12 +13,11 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { OdpConfig } from '../odp_config';
import { OdpEvent } from './odp_event'
import { OdpEventApiManager } from './odp_event_api_manager';
import { HttpMethod } from '../../utils/http_request_handler/http';

import { OdpConfig, OdpIntegrationConfig } from '../../../core/odp/odp_config';
import { OdpEvent } from '../../../core/odp/odp_event';
import { OdpEventApiManager } from '../../../core/odp/odp_event_api_manager';
import { LogLevel } from '../../../modules/logging';
import { HttpMethod } from '../../../utils/http_request_handler/http';
export class NodeOdpEventApiManager extends OdpEventApiManager {
protected shouldSendEvents(events: OdpEvent[]): boolean {
return true;
Original file line number Diff line number Diff line change
@@ -14,9 +14,9 @@
* limitations under the License.
*/

import { IOdpEventManager, OdpEventManager } from '../../../core/odp/odp_event_manager';
import { LogLevel } from '../../../modules/logging';
import { OdpEvent } from "../../../core/odp/odp_event";
import { IOdpEventManager, OdpEventManager } from './odp_event_manager';
import { LogLevel } from '../../modules/logging';
import { OdpEvent } from './odp_event';

const DEFAULT_BROWSER_QUEUE_SIZE = 100;

Original file line number Diff line number Diff line change
@@ -14,9 +14,9 @@
* limitations under the License.
*/

import { OdpEvent } from '../../../core/odp/odp_event';
import { IOdpEventManager, OdpEventManager } from '../../../core/odp/odp_event_manager';
import { LogLevel } from '../../../modules/logging';
import { OdpEvent } from './odp_event';
import { IOdpEventManager, OdpEventManager } from './odp_event_manager';
import { LogLevel } from '../../modules/logging';

const DEFAULT_BATCH_SIZE = 10;
const DEFAULT_FLUSH_INTERVAL_MSECS = 1000;
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -17,8 +17,7 @@
import { LogHandler, LogLevel } from '../../modules/logging';
import { OdpEvent } from './odp_event';
import { HttpMethod, RequestHandler } from '../../utils/http_request_handler/http';
import { OdpConfig } from './odp_config';
import { ERROR_MESSAGES } from '../../utils/enums';
import { OdpConfig } from '../odp_config';

const EVENT_SENDING_FAILURE_MESSAGE = 'ODP event send failed';

Original file line number Diff line number Diff line change
@@ -20,10 +20,10 @@ import { uuid } from '../../utils/fns';
import { ERROR_MESSAGES, ODP_USER_KEY, ODP_DEFAULT_EVENT_TYPE, ODP_EVENT_ACTION } from '../../utils/enums';

import { OdpEvent } from './odp_event';
import { OdpConfig } from './odp_config';
import { OdpConfig } from '../odp_config';
import { IOdpEventApiManager } from './odp_event_api_manager';
import { invalidOdpDataFound } from './odp_utils';
import { IUserAgentParser } from './user_agent_parser';
import { invalidOdpDataFound } from '../odp_utils';
import { IUserAgentParser } from '../ua_parser/user_agent_parser';
import { scheduleMicrotask } from '../../utils/microtask';

const MAX_RETRIES = 3;
2 changes: 1 addition & 1 deletion lib/core/odp/odp_config.ts → lib/odp/odp_config.ts
Original file line number Diff line number Diff line change
@@ -14,7 +14,7 @@
* limitations under the License.
*/

import { checkArrayEquality } from '../../utils/fns';
import { checkArrayEquality } from '../utils/fns';

export class OdpConfig {
/**
Original file line number Diff line number Diff line change
@@ -22,25 +22,24 @@ import {
REQUEST_TIMEOUT_ODP_SEGMENTS_MS,
REQUEST_TIMEOUT_ODP_EVENTS_MS,
LOG_MESSAGES,
} from '../../utils/enums';
import { getLogger, LogHandler, LogLevel } from '../../modules/logging';
} from '../utils/enums';
import { getLogger, LogHandler, LogLevel } from '../modules/logging';

import { BrowserRequestHandler } from './../../utils/http_request_handler/browser_request_handler';
import { BrowserRequestHandler } from '../utils/http_request_handler/browser_request_handler';

import BrowserAsyncStorageCache from '../key_value_cache/browserAsyncStorageCache';
import PersistentKeyValueCache from '../key_value_cache/persistentKeyValueCache';
import { BrowserLRUCache } from '../../utils/lru_cache';
import BrowserAsyncStorageCache from '../plugins/key_value_cache/browserAsyncStorageCache';
import { BrowserLRUCache } from '../utils/lru_cache';

import { VuidManager } from './../vuid_manager/index';
import { VuidManager } from '../plugins/vuid_manager/index';

import { OdpManager } from '../../core/odp/odp_manager';
import { OdpEvent } from '../../core/odp/odp_event';
import { IOdpEventManager, OdpOptions } from '../../shared_types';
import { BrowserOdpEventApiManager } from '../odp/event_api_manager/index.browser';
import { BrowserOdpEventManager } from '../odp/event_manager/index.browser';
import { IOdpSegmentManager, OdpSegmentManager } from '../../core/odp/odp_segment_manager';
import { OdpSegmentApiManager } from '../../core/odp/odp_segment_api_manager';
import { OdpConfig, OdpIntegrationConfig } from '../../core/odp/odp_config';
import { OdpManager } from './odp_manager';
import { OdpEvent } from './event_manager/odp_event';
import { IOdpEventManager, OdpOptions } from '../shared_types';
import { BrowserOdpEventApiManager } from './event_manager/event_api_manager.browser';
import { BrowserOdpEventManager } from './event_manager/event_manager.browser';
import { IOdpSegmentManager, OdpSegmentManager } from './segment_manager/odp_segment_manager';
import { OdpSegmentApiManager } from './segment_manager/odp_segment_api_manager';
import { OdpConfig, OdpIntegrationConfig } from './odp_config';

interface BrowserOdpManagerConfig {
clientEngine?: string,
Original file line number Diff line number Diff line change
@@ -14,25 +14,25 @@
* limitations under the License.
*/

import { NodeRequestHandler } from '../../utils/http_request_handler/node_request_handler';
import { NodeRequestHandler } from '../utils/http_request_handler/node_request_handler';

import { ServerLRUCache } from './../../utils/lru_cache/server_lru_cache';
import { ServerLRUCache } from '../utils/lru_cache/server_lru_cache';

import { getLogger, LogHandler, LogLevel } from '../../modules/logging';
import { getLogger, LogHandler, LogLevel } from '../modules/logging';
import {
NODE_CLIENT_ENGINE,
CLIENT_VERSION,
REQUEST_TIMEOUT_ODP_EVENTS_MS,
REQUEST_TIMEOUT_ODP_SEGMENTS_MS,
} from '../../utils/enums';

import { OdpManager } from '../../core/odp/odp_manager';
import { IOdpEventManager, OdpOptions } from '../../shared_types';
import { NodeOdpEventApiManager } from '../odp/event_api_manager/index.node';
import { NodeOdpEventManager } from '../odp/event_manager/index.node';
import { IOdpSegmentManager, OdpSegmentManager } from '../../core/odp/odp_segment_manager';
import { OdpSegmentApiManager } from '../../core/odp/odp_segment_api_manager';
import { OdpConfig, OdpIntegrationConfig } from '../../core/odp/odp_config';
} from '../utils/enums';

import { OdpManager } from './odp_manager';
import { IOdpEventManager, OdpOptions } from '../shared_types';
import { NodeOdpEventApiManager } from './event_manager/event_api_manager.node';
import { NodeOdpEventManager } from './event_manager/event_manager.node';
import { IOdpSegmentManager, OdpSegmentManager } from './segment_manager/odp_segment_manager';
import { OdpSegmentApiManager } from './segment_manager/odp_segment_api_manager';
import { OdpConfig, OdpIntegrationConfig } from './odp_config';

interface NodeOdpManagerConfig {
clientEngine?: string,
19 changes: 9 additions & 10 deletions lib/core/odp/odp_manager.ts → lib/odp/odp_manager.ts
Original file line number Diff line number Diff line change
@@ -14,19 +14,18 @@
* limitations under the License.
*/

import { LOG_MESSAGES } from './../../utils/enums/index';
import { getLogger, LogHandler, LogLevel } from '../../modules/logging';
import { ERROR_MESSAGES, ODP_USER_KEY } from '../../utils/enums';
import { LogHandler, LogLevel } from '../modules/logging';
import { ERROR_MESSAGES, ODP_USER_KEY } from '../utils/enums';

import { VuidManager } from '../../plugins/vuid_manager';
import { VuidManager } from '../plugins/vuid_manager';

import { OdpConfig, OdpIntegrationConfig, odpIntegrationsAreEqual } from './odp_config';
import { IOdpEventManager } from './odp_event_manager';
import { IOdpSegmentManager } from './odp_segment_manager';
import { OptimizelySegmentOption } from './optimizely_segment_option';
import { OdpIntegrationConfig, odpIntegrationsAreEqual } from './odp_config';
import { IOdpEventManager } from './event_manager/odp_event_manager';
import { IOdpSegmentManager } from './segment_manager/odp_segment_manager';
import { OptimizelySegmentOption } from './segment_manager/optimizely_segment_option';
import { invalidOdpDataFound } from './odp_utils';
import { OdpEvent } from './odp_event';
import { resolvablePromise, ResolvablePromise } from '../../utils/promise/resolvablePromise';
import { OdpEvent } from './event_manager/odp_event';
import { resolvablePromise, ResolvablePromise } from '../utils/promise/resolvablePromise';

/**
* Manager for handling internal all business logic related to
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -16,10 +16,10 @@

import { LogHandler, LogLevel } from '../../modules/logging';
import { validate } from '../../utils/json_schema_validator';
import { OdpResponseSchema } from './odp_response_schema';
import { OdpResponseSchema } from '../odp_response_schema';
import { ODP_USER_KEY } from '../../utils/enums';
import { RequestHandler, Response as HttpResponse } from '../../utils/http_request_handler/http';
import { Response as GraphQLResponse } from './odp_types';
import { Response as GraphQLResponse } from '../odp_types';

/**
* Expected value for a qualified/valid segment
Original file line number Diff line number Diff line change
@@ -18,7 +18,7 @@ import { getLogger, LogHandler, LogLevel } from '../../modules/logging';
import { ERROR_MESSAGES, ODP_USER_KEY } from '../../utils/enums';
import { ICache } from '../../utils/lru_cache';
import { IOdpSegmentApiManager } from './odp_segment_api_manager';
import { OdpConfig } from './odp_config';
import { OdpConfig } from '../odp_config';
import { OptimizelySegmentOption } from './optimizely_segment_option';

export interface IOdpSegmentManager {
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -15,8 +15,8 @@
*/

import { UAParser } from 'ua-parser-js';
import { UserAgentInfo } from "../../../core/odp/user_agent_info";
import { IUserAgentParser } from '../../../core/odp/user_agent_parser';
import { UserAgentInfo } from './user_agent_info';
import { IUserAgentParser } from './user_agent_parser';

const userAgentParser: IUserAgentParser = {
parseUserAgentInfo(): UserAgentInfo {
File renamed without changes.
File renamed without changes.
6 changes: 3 additions & 3 deletions lib/optimizely/index.ts
Original file line number Diff line number Diff line change
@@ -19,9 +19,9 @@ import { sprintf, objectValues } from '../utils/fns';
import { NotificationCenter } from '../notification_center';
import { EventProcessor } from '../event_processor/event_processor';

import { IOdpManager } from '../core/odp/odp_manager';
import { OdpEvent } from '../core/odp/odp_event';
import { OptimizelySegmentOption } from '../core/odp/optimizely_segment_option';
import { IOdpManager } from '../odp/odp_manager';
import { OdpEvent } from '../odp/event_manager/odp_event';
import { OptimizelySegmentOption } from '../odp/segment_manager/optimizely_segment_option';

import {
UserAttributes,
2 changes: 1 addition & 1 deletion lib/optimizely_user_context/index.ts
Original file line number Diff line number Diff line change
@@ -24,7 +24,7 @@ import {
UserAttributes,
} from '../shared_types';
import { CONTROL_ATTRIBUTES } from '../utils/enums';
import { OptimizelySegmentOption } from '../core/odp/optimizely_segment_option';
import { OptimizelySegmentOption } from '../odp/segment_manager/optimizely_segment_option';

interface OptimizelyUserContextConfig {
optimizely: Optimizely;
2 changes: 1 addition & 1 deletion lib/project_config/project_config.ts
Original file line number Diff line number Diff line change
@@ -34,7 +34,7 @@ import {
Integration,
FeatureVariableValue,
} from '../shared_types';
import { OdpConfig, OdpIntegrationConfig } from '../core/odp/odp_config';
import { OdpConfig, OdpIntegrationConfig } from '../odp/odp_config';
import { Transformer } from '../utils/type';

interface TryCreatingProjectConfigConfig {
14 changes: 7 additions & 7 deletions lib/shared_types.ts
Original file line number Diff line number Diff line change
@@ -28,13 +28,13 @@ import { IOptimizelyUserContext as OptimizelyUserContext } from './optimizely_us

import { ICache } from './utils/lru_cache';
import { RequestHandler } from './utils/http_request_handler/http';
import { OptimizelySegmentOption } from './core/odp/optimizely_segment_option';
import { IOdpSegmentApiManager } from './core/odp/odp_segment_api_manager';
import { IOdpSegmentManager } from './core/odp/odp_segment_manager';
import { IOdpEventApiManager } from './core/odp/odp_event_api_manager';
import { IOdpEventManager } from './core/odp/odp_event_manager';
import { IOdpManager } from './core/odp/odp_manager';
import { IUserAgentParser } from './core/odp/user_agent_parser';
import { OptimizelySegmentOption } from './odp/segment_manager/optimizely_segment_option';
import { IOdpSegmentApiManager } from './odp/segment_manager/odp_segment_api_manager';
import { IOdpSegmentManager } from './odp/segment_manager/odp_segment_manager';
import { IOdpEventApiManager } from './odp/event_manager/odp_event_api_manager';
import { IOdpEventManager } from './odp/event_manager/odp_event_manager';
import { IOdpManager } from './odp/odp_manager';
import { IUserAgentParser } from './odp/ua_parser/user_agent_parser';
import PersistentCache from './plugins/key_value_cache/persistentKeyValueCache';
import { ProjectConfig } from './project_config/project_config';
import { ProjectConfigManager } from './project_config/project_config_manager';
6 changes: 3 additions & 3 deletions tests/odpEventApiManager.spec.ts
Original file line number Diff line number Diff line change
@@ -18,10 +18,10 @@ import { describe, beforeEach, beforeAll, it, expect } from 'vitest';

import { anyString, anything, capture, instance, mock, resetCalls, verify, when } from 'ts-mockito';
import { LogHandler, LogLevel } from '../lib/modules/logging';
import { NodeOdpEventApiManager } from '../lib/plugins/odp/event_api_manager/index.node';
import { OdpEvent } from '../lib/core/odp/odp_event';
import { NodeOdpEventApiManager } from '../lib/odp/event_manager/event_api_manager.node';
import { OdpEvent } from '../lib/odp/event_manager/odp_event';
import { RequestHandler } from '../lib/utils/http_request_handler/http';
import { OdpConfig } from '../lib/core/odp/odp_config';
import { OdpConfig } from '../lib/odp/odp_config';

const data1 = new Map<string, unknown>();
data1.set('key11', 'value-1');
18 changes: 9 additions & 9 deletions tests/odpEventManager.spec.ts
Original file line number Diff line number Diff line change
@@ -16,17 +16,17 @@
import { describe, beforeEach, afterEach, beforeAll, it, vi, expect } from 'vitest';

import { ODP_EVENT_ACTION, ODP_DEFAULT_EVENT_TYPE, ERROR_MESSAGES } from '../lib/utils/enums';
import { OdpConfig } from '../lib/core/odp/odp_config';
import { Status } from '../lib/core/odp/odp_event_manager';
import { BrowserOdpEventManager } from "../lib/plugins/odp/event_manager/index.browser";
import { NodeOdpEventManager } from '../lib/plugins/odp/event_manager/index.node';
import { OdpEventManager } from '../lib/core/odp/odp_event_manager';
import { OdpConfig } from '../lib/odp/odp_config';
import { Status } from '../lib/odp/event_manager/odp_event_manager';
import { BrowserOdpEventManager } from '../lib/odp/event_manager/event_manager.browser';
import { NodeOdpEventManager } from '../lib/odp/event_manager/event_manager.node';
import { OdpEventManager } from '../lib/odp/event_manager/odp_event_manager';
import { anything, capture, instance, mock, resetCalls, spy, verify, when } from 'ts-mockito';
import { IOdpEventApiManager } from '../lib/core/odp/odp_event_api_manager';
import { IOdpEventApiManager } from '../lib/odp/event_manager/odp_event_api_manager';
import { LogHandler, LogLevel } from '../lib/modules/logging';
import { OdpEvent } from '../lib/core/odp/odp_event';
import { IUserAgentParser } from '../lib/core/odp/user_agent_parser';
import { UserAgentInfo } from '../lib/core/odp/user_agent_info';
import { OdpEvent } from '../lib/odp/event_manager/odp_event';
import { IUserAgentParser } from '../lib/odp/ua_parser/user_agent_parser';
import { UserAgentInfo } from '../lib/odp/ua_parser/user_agent_info';
import { resolve } from 'path';
import { advanceTimersByTime } from './testUtils';

Loading
Loading