From fdda27f1b9bc31466c17ae3c6996e27f0edb3bc3 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Tue, 7 May 2024 10:01:59 -0300 Subject: [PATCH 1/2] Remove EventEmitter max listeners warning --- CHANGES.txt | 3 +++ src/utils.ts | 4 ++++ tsconfig.json | 4 +++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGES.txt b/CHANGES.txt index 941d295..3e87d22 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,6 @@ +1.11.2 (May XX, 2024) + - Updated internal use of the SDK client to remove EventEmitter memory leak warnings. These warnings are emitted when using multiple hooks and components from the SDK simultaneously, but they do not indicate an actual memory leak and are irrelevant for SDK usage (Related to https://github.com/splitio/react-client/issues/191). + 1.11.1 (March 26, 2024) - Bugfixing - Added tslib as an explicit dependency to avoid issues with some package managers that don't resolve it automatically as a transitive dependency from @splitsoftware/splitio-commons (Related to issue https://github.com/splitio/javascript-client/issues/795). diff --git a/src/utils.ts b/src/utils.ts index 760077a..cbd2894 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -53,6 +53,10 @@ export function getSplitClient(factory: SplitIO.IBrowserSDK, key?: SplitIO.Split // Handle client lastUpdate if (client.lastUpdate === undefined) { + // Remove EventEmitter warning emitted when using multiple SDK hooks or components. + // Unlike JS SDK, users don't need to use the client directly and so the warning is not relevant. + client.setMaxListeners(0); + const updateLastUpdate = () => { const lastUpdate = Date.now(); client.lastUpdate = lastUpdate > client.lastUpdate ? lastUpdate : client.lastUpdate + 1; diff --git a/tsconfig.json b/tsconfig.json index 53b35e1..a409207 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -18,7 +18,9 @@ "moduleResolution": "node", /* Specify module resolution strategy: 'node' (Node.js) or 'classic' (TypeScript pre-1.6). */ "esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */ }, - "include": ["src"], + "include": [ + "src" + ], "exclude": [ "./src/__tests__", "umd.ts", From 08711d9ddc8ac6beb04ef1052448dbd31abec82b Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Fri, 10 May 2024 11:52:08 -0300 Subject: [PATCH 2/2] Update changelog entry --- CHANGES.txt | 2 +- src/utils.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 1ebc95f..a2ae970 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -3,7 +3,7 @@ - Added support for targeting rules based on semantic versions (https://semver.org/). - Added special impression label "targeting rule type unsupported by sdk" when the matcher type is not supported by the SDK, which returns 'control' treatment. - Updated Split API client to include the flags spec version query parameter for the `splitChanges` and `auth` endpoints. - - Updated internal use of the SDK client to remove EventEmitter memory leak warnings. These warnings are emitted when using multiple hooks and components from the SDK simultaneously, but they do not indicate an actual memory leak and are irrelevant for SDK usage (Related to https://github.com/splitio/react-client/issues/191). + - Updated internal use of the SDK client to remove EventEmitter memory leak warnings. These warnings were emitted when using multiple hooks and components from the SDK simultaneously, but they do not indicate an actual memory leak and are irrelevant for SDK usage (Related to https://github.com/splitio/react-client/issues/191). 1.11.1 (March 26, 2024) - Bugfixing - Added tslib as an explicit dependency to avoid issues with some package managers that don't resolve it automatically as a transitive dependency from @splitsoftware/splitio-commons (Related to issue https://github.com/splitio/javascript-client/issues/795). diff --git a/src/utils.ts b/src/utils.ts index cbd2894..856e825 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -54,7 +54,7 @@ export function getSplitClient(factory: SplitIO.IBrowserSDK, key?: SplitIO.Split // Handle client lastUpdate if (client.lastUpdate === undefined) { // Remove EventEmitter warning emitted when using multiple SDK hooks or components. - // Unlike JS SDK, users don't need to use the client directly and so the warning is not relevant. + // Unlike JS SDK, users can avoid using the client directly, making the warning irrelevant. client.setMaxListeners(0); const updateLastUpdate = () => {