From c07824951ba39c669102a2f4dd6e0c05c06d9ad4 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Fri, 25 Oct 2024 02:34:17 -0300 Subject: [PATCH 1/2] Internal refactor after removing sync.localhostMode option in JS-commons --- package-lock.json | 14 +++++++------- package.json | 2 +- src/factory/browser.js | 3 ++- src/factory/node.js | 3 ++- src/settings/browser.js | 2 -- src/settings/node.js | 2 -- src/sync/offline/LocalhostFromFile.js | 9 ++------- 7 files changed, 14 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index f0c4ffe5e..64c5a0e6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "11.0.0-rc.1", "license": "Apache-2.0", "dependencies": { - "@splitsoftware/splitio-commons": "2.0.0-rc.1", + "@splitsoftware/splitio-commons": "2.0.0-rc.3", "@types/ioredis": "^4.28.0", "bloom-filters": "^3.0.0", "ioredis": "^4.28.0", @@ -870,9 +870,9 @@ "dev": true }, "node_modules/@splitsoftware/splitio-commons": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.0.0-rc.1.tgz", - "integrity": "sha512-tjIDgNnrwOKphYtWKNv0HOU7LJQ+0ljgbmknhi3H7MDptvnwG7o8DHKtoAtuljcEqVjosLmhgzOxzTY9MGZruw==", + "version": "2.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.0.0-rc.3.tgz", + "integrity": "sha512-XkDbULWBg6nw061b4Vc425JyrpDe5nSypoScO4eVsFbgcCqUPlGbr+s9bfriwNFyZe2Q29ijIlyGM06TCt27kQ==", "dependencies": { "tslib": "^2.3.1" }, @@ -8587,9 +8587,9 @@ "dev": true }, "@splitsoftware/splitio-commons": { - "version": "2.0.0-rc.1", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.0.0-rc.1.tgz", - "integrity": "sha512-tjIDgNnrwOKphYtWKNv0HOU7LJQ+0ljgbmknhi3H7MDptvnwG7o8DHKtoAtuljcEqVjosLmhgzOxzTY9MGZruw==", + "version": "2.0.0-rc.3", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-2.0.0-rc.3.tgz", + "integrity": "sha512-XkDbULWBg6nw061b4Vc425JyrpDe5nSypoScO4eVsFbgcCqUPlGbr+s9bfriwNFyZe2Q29ijIlyGM06TCt27kQ==", "requires": { "tslib": "^2.3.1" } diff --git a/package.json b/package.json index 8a0c2cd88..55f3ad188 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "node": ">=14.0.0" }, "dependencies": { - "@splitsoftware/splitio-commons": "2.0.0-rc.1", + "@splitsoftware/splitio-commons": "2.0.0-rc.3", "@types/ioredis": "^4.28.0", "bloom-filters": "^3.0.0", "ioredis": "^4.28.0", diff --git a/src/factory/browser.js b/src/factory/browser.js index b06eac524..8b71ed235 100644 --- a/src/factory/browser.js +++ b/src/factory/browser.js @@ -11,6 +11,7 @@ import { __InLocalStorageMockFactory } from '@splitsoftware/splitio-commons/src/ import { sdkFactory } from '@splitsoftware/splitio-commons/src/sdkFactory'; import { LOCALHOST_MODE, STORAGE_LOCALSTORAGE } from '@splitsoftware/splitio-commons/src/utils/constants'; import { createUserConsentAPI } from '@splitsoftware/splitio-commons/src/consent/sdkUserConsent'; +import { localhostFromObjectFactory } from '@splitsoftware/splitio-commons/src/sync/offline/LocalhostFromObject'; import { settingsFactory } from '../settings/browser'; import { platform, SignalListener } from '../platform'; @@ -60,7 +61,7 @@ function getModules(settings) { switch (settings.mode) { case LOCALHOST_MODE: modules.splitApiFactory = undefined; - modules.syncManagerFactory = settings.sync.localhostMode; + modules.syncManagerFactory = localhostFromObjectFactory; modules.SignalListener = undefined; break; } diff --git a/src/factory/node.js b/src/factory/node.js index d8141037a..4142741b9 100644 --- a/src/factory/node.js +++ b/src/factory/node.js @@ -10,6 +10,7 @@ import { impressionObserverSSFactory } from '@splitsoftware/splitio-commons/src/ import { sdkFactory } from '@splitsoftware/splitio-commons/src/sdkFactory'; import { CONSUMER_MODE, LOCALHOST_MODE } from '@splitsoftware/splitio-commons/src/utils/constants'; +import { localhostFromFileFactory } from '../sync/offline/LocalhostFromFile'; import { settingsFactory } from '../settings/node'; import { platform, SignalListener } from '../platform'; import { bloomFilterFactory } from '../platform/filter/bloomFilter'; @@ -53,7 +54,7 @@ function getModules(settings) { switch (settings.mode) { case LOCALHOST_MODE: modules.splitApiFactory = undefined; - modules.syncManagerFactory = settings.sync.localhostMode; + modules.syncManagerFactory = localhostFromFileFactory; modules.SignalListener = undefined; break; case CONSUMER_MODE: diff --git a/src/settings/browser.js b/src/settings/browser.js index 5a1ae432b..584b11a23 100644 --- a/src/settings/browser.js +++ b/src/settings/browser.js @@ -1,7 +1,6 @@ import { settingsValidation } from '@splitsoftware/splitio-commons/src/utils/settingsValidation'; import { validateRuntime } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/runtime'; import { validateLogger } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/logger/builtinLogger'; -import { LocalhostFromObject } from '@splitsoftware/splitio-commons/src/sync/offline/LocalhostFromObject'; import { validateConsent } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/consent'; import { defaults } from './defaults/browser'; @@ -13,7 +12,6 @@ const params = { runtime: validateRuntime, storage: validateStorage, logger: validateLogger, - localhost: () => LocalhostFromObject(), consent: validateConsent, }; diff --git a/src/settings/node.js b/src/settings/node.js index f7664b3f6..5fe7d5535 100644 --- a/src/settings/node.js +++ b/src/settings/node.js @@ -1,6 +1,5 @@ import { settingsValidation } from '@splitsoftware/splitio-commons/src/utils/settingsValidation'; import { validateLogger } from '@splitsoftware/splitio-commons/src/utils/settingsValidation/logger/builtinLogger'; -import { LocalhostFromFile } from '../sync/offline/LocalhostFromFile'; import { defaults } from './defaults/node'; import { validateStorage } from './storage/node'; @@ -13,7 +12,6 @@ const params = { runtime: validateRuntime, storage: validateStorage, logger: validateLogger, - localhost: () => LocalhostFromFile(), flagSpec: () => FLAG_SPEC_VERSION // In Node.js the SDK ignores `config.integrations`, so a validator for integrations is not required }; diff --git a/src/sync/offline/LocalhostFromFile.js b/src/sync/offline/LocalhostFromFile.js index 3f63173ac..3dca10929 100644 --- a/src/sync/offline/LocalhostFromFile.js +++ b/src/sync/offline/LocalhostFromFile.js @@ -1,11 +1,6 @@ import { splitsParserFromFileFactory } from './splitsParserFromFile'; import { syncManagerOfflineFactory } from '@splitsoftware/splitio-commons/src/sync/offline/syncManagerOffline'; -// Singleton instance of the factory function for offline SyncManager from YAML file (a.k.a. localhostFromFile) +// Singleton instance of the factory function for offline SyncManager from YAML file // It uses NodeJS APIs. -const localhostFromFile = syncManagerOfflineFactory(splitsParserFromFileFactory); -localhostFromFile.type = 'LocalhostFromFile'; - -export function LocalhostFromFile() { - return localhostFromFile; -} +export const localhostFromFileFactory = syncManagerOfflineFactory(splitsParserFromFileFactory); From 93d807e2e6c6719782f528cbec5a05450c9c3bb8 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Mon, 28 Oct 2024 13:01:55 -0300 Subject: [PATCH 2/2] Update eslint config --- .eslintrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.eslintrc b/.eslintrc index 1d7f59384..b410eddeb 100644 --- a/.eslintrc +++ b/.eslintrc @@ -46,7 +46,7 @@ ], "rules": { "no-restricted-syntax": ["error", "ForOfStatement", "ForInStatement", "ArrayPattern"], - "compat/compat": ["error", "defaults, ie 10, node 6"], + "compat/compat": ["error", "defaults, node >=14"], "no-throw-literal": "error", "import/no-default-export": "error", "import/no-self-import": "error"