diff --git a/CHANGES.txt b/CHANGES.txt index 24273a1..8129d20 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -4,6 +4,7 @@ - Updated @splitsoftware/splitio-commons package to version 2.0.0 that includes major updates and updated some transitive dependencies for vulnerability fixes. - BREAKING CHANGES: - Removed the `LocalhostFromObject` export from the default import (`import { LocalhostFromObject } from '@splitsoftware/splitio-react-native'`). It is no longer necessary to manually import and configure it in the `sync.localhostMode` option to enable localhost mode. + - Removed the "full" import (`import { SplitFactory } from '@splitsoftware/splitio-react-native/full'`), since with the removal of `LocalhostFromObject` from the default import there is no difference between them. 0.10.0 (September 13, 2024) - Updated @splitsoftware/splitio-commons package to version 1.17.0 that includes minor updates: diff --git a/package.json b/package.json index abd6186..7f7b30a 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,6 @@ "android", "ios", "RNSplit.podspec", - "full", "!android/build", "!android/gradle", "!android/gradlew", diff --git a/src/full/index.ts b/src/full/index.ts deleted file mode 100644 index d76a207..0000000 --- a/src/full/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export { SplitFactory } from './splitFactory'; -export { ErrorLogger } from '@splitsoftware/splitio-commons/src/logger/browser/ErrorLogger'; -export { WarnLogger } from '@splitsoftware/splitio-commons/src/logger/browser/WarnLogger'; -export { InfoLogger } from '@splitsoftware/splitio-commons/src/logger/browser/InfoLogger'; -export { DebugLogger } from '@splitsoftware/splitio-commons/src/logger/browser/DebugLogger'; diff --git a/src/full/splitFactory.ts b/src/full/splitFactory.ts deleted file mode 100644 index 707828c..0000000 --- a/src/full/splitFactory.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { settingsFactory } from '../settings/full'; -import { getModules } from '../platform/getModules'; -import { sdkFactory } from '@splitsoftware/splitio-commons/src/sdkFactory/index'; -import type { ISdkFactoryParams } from '@splitsoftware/splitio-commons/src/sdkFactory/types'; -import { IReactNativeSettings } from '../../types/splitio'; - -/** - * SplitFactory for React Native. - * - * @param config Configuration object used to instantiate the SDK - * @param __updateModules Optional function that lets redefine internal SDK modules. Use with - * caution since, unlike `config`, this param is not validated neither considered part of the public API. - * @throws Will throw an error if the provided config is invalid. - */ -export function SplitFactory(config: IReactNativeSettings, __updateModules?: (modules: ISdkFactoryParams) => void) { - const settings = settingsFactory(config); - const modules = getModules(settings); - if (__updateModules) __updateModules(modules); - return sdkFactory(modules); -} diff --git a/src/settings/__tests__/index.spec.ts b/src/settings/__tests__/index.spec.ts index 4b1ad49..ab157b6 100644 --- a/src/settings/__tests__/index.spec.ts +++ b/src/settings/__tests__/index.spec.ts @@ -1,18 +1,15 @@ -import { settingsFactory as slimSettingsFactory } from '../index'; -import { settingsFactory as fullSettingsFactory } from '../full'; +import { settingsFactory } from '../index'; test('SETTINGS / Consent is overwritable and "GRANTED" by default', () => { - [slimSettingsFactory, fullSettingsFactory].forEach((settingsFactory) => { - let settings = settingsFactory({}); - expect(settings.userConsent).toEqual('GRANTED'); // userConsent defaults to granted if not provided + let settings = settingsFactory({}); + expect(settings.userConsent).toEqual('GRANTED'); // userConsent defaults to granted if not provided - settings = settingsFactory({ userConsent: 'INVALID-VALUE' }); - expect(settings.userConsent).toEqual('GRANTED'); // userConsent defaults to granted if a wrong value is provided + settings = settingsFactory({ userConsent: 'INVALID-VALUE' }); + expect(settings.userConsent).toEqual('GRANTED'); // userConsent defaults to granted if a wrong value is provided - settings = settingsFactory({ userConsent: 'UNKNOWN' }); - expect(settings.userConsent).toEqual('UNKNOWN'); // userConsent can be overwritten + settings = settingsFactory({ userConsent: 'UNKNOWN' }); + expect(settings.userConsent).toEqual('UNKNOWN'); // userConsent can be overwritten - settings = settingsFactory({ userConsent: 'declined' }); - expect(settings.userConsent).toEqual('DECLINED'); // userConsent can be overwritten - }); + settings = settingsFactory({ userConsent: 'declined' }); + expect(settings.userConsent).toEqual('DECLINED'); // userConsent can be overwritten }); diff --git a/src/settings/full.ts b/src/settings/full.ts deleted file mode 100644 index ddd7d07..0000000 --- a/src/settings/full.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { settingsValidation } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/index'; -import { defaults } from './defaults'; -import { validateRuntime } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/runtime'; -import { validateStorageCS } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/storage/storageCS'; -import { validatePluggableIntegrations } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/integrations/pluggable'; -import { validateLogger } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/logger/pluggableLogger'; -import { validateConsent } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/consent'; - -const params = { - defaults, - acceptKey: true, // Client with bound key - runtime: validateRuntime, - storage: validateStorageCS, - integrations: validatePluggableIntegrations, - logger: validateLogger, - consent: validateConsent, -}; - -export function settingsFactory(config: any) { - const settings = settingsValidation(config, params); - // @ts-ignore. For internal use, flush data on background until a persistent storage is provided. - settings.flushDataOnBackground = true; - return settings; -} diff --git a/types/full/index.d.ts b/types/full/index.d.ts deleted file mode 100644 index 1b7c39b..0000000 --- a/types/full/index.d.ts +++ /dev/null @@ -1,44 +0,0 @@ -// Declaration file for React Native Split Software SDK -// Project: http://www.split.io/ -// Definitions by: Nico Zelaya - -/// -export = JsSdk; - -declare module JsSdk { - /** - * Split.io SDK factory function. - * - * The settings parameter should be an object that complies with the SplitIO.IReactNativeSettings. - * For more information read the corresponding article: @see {@link https://help.split.io/hc/en-us/articles/4406066357901#configuration} - */ - export function SplitFactory(settings: SplitIO.IReactNativeSettings): SplitIO.ISDK; - - /** - * Creates a logger instance that enables descriptive log messages with DEBUG log level when passed in the factory settings. - * - * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} - */ - export function DebugLogger(): SplitIO.ILogger; - - /** - * Creates a logger instance that enables descriptive log messages with INFO log level when passed in the factory settings. - * - * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} - */ - export function InfoLogger(): SplitIO.ILogger; - - /** - * Creates a logger instance that enables descriptive log messages with WARN log level when passed in the factory settings. - * - * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} - */ - export function WarnLogger(): SplitIO.ILogger; - - /** - * Creates a logger instance that enables descriptive log messages with ERROR log level when passed in the factory settings. - * - * @see {@link https://help.split.io/hc/en-us/articles/4406066357901#logging} - */ - export function ErrorLogger(): SplitIO.ILogger; -}