From a524ac69aaf03652fa6ee519196b2a29ad61dbb6 Mon Sep 17 00:00:00 2001 From: Jiakan Wang Date: Wed, 20 Apr 2022 16:48:42 -0700 Subject: [PATCH] increase max user object limit --- package-lock.json | 4 ++-- package.json | 2 +- src/__tests__/index.test.js | 10 +++++----- src/index.js | 5 +++-- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 685a48c..85acbd1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "statsig-node", - "version": "4.14.0", + "version": "4.15.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "statsig-node", - "version": "4.14.0", + "version": "4.15.0", "license": "ISC", "dependencies": { "ip3country": "^5.0.0", diff --git a/package.json b/package.json index 57e020d..6acb060 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "statsig-node", - "version": "4.14.0", + "version": "4.15.0", "description": "Statsig Node.js SDK for usage in multi-user server environments.", "main": "dist/src/index.js", "scripts": { diff --git a/src/__tests__/index.test.js b/src/__tests__/index.test.js index 1934e68..06b8eb9 100644 --- a/src/__tests__/index.test.js +++ b/src/__tests__/index.test.js @@ -437,7 +437,7 @@ describe('Verify behavior of top level index functions', () => { let configName = 'config_downloaded'; const spy = jest.spyOn(statsig._logger, 'log'); - for (let ii = 0 ; ii < 10000; ii++) { + for (let ii = 0; ii < 10000; ii++) { await statsig.getConfig(user, configName); } @@ -461,7 +461,7 @@ describe('Verify behavior of top level index functions', () => { let configName = 'config_downloaded'; const spy = jest.spyOn(statsig._logger, 'log'); - for (let ii = 0 ; ii < 10000; ii++) { + for (let ii = 0; ii < 10000; ii++) { user.userID = ii; await statsig.getConfig(user, configName); } @@ -480,7 +480,7 @@ describe('Verify behavior of top level index functions', () => { let configName = 'config_downloaded'; const spy = jest.spyOn(statsig._logger, 'log'); - for (let ii = 0 ; ii < 10000; ii++) { + for (let ii = 0; ii < 10000; ii++) { jest.spyOn(Evaluator, 'getConfig').mockImplementation((_, configName) => { return new ConfigEvaluation(true, 'rule_id_config_' + ii, [], { string: '12345', @@ -606,10 +606,10 @@ describe('Verify behavior of top level index functions', () => { expect.assertions(2); let str_1k = str_64; // create a 1k long string - for (let i = 0; i < 4; i++) { + for (let i = 0; i < 5; i++) { str_1k += str_1k; } - expect(str_1k.length).toBe(1024); + expect(str_1k.length).toBe(2048); return statsig.initialize(secretKey).then(() => { let bigUser = { userID: str_64 + 'more', diff --git a/src/index.js b/src/index.js index 9a8d63a..f2c1cc0 100644 --- a/src/index.js +++ b/src/index.js @@ -12,6 +12,7 @@ const { Layer } = require('./Layer'); const MAX_VALUE_SIZE = 64; const MAX_OBJ_SIZE = 1024; +const MAX_USER_SIZE = 2048; let hasLoggedNoUserIdWarning = false; /** @@ -466,9 +467,9 @@ function trimUserObjIfNeeded(user) { ); user.userID = user.userID.toString().substring(0, MAX_VALUE_SIZE); } - if (shouldTrimParam(user, MAX_OBJ_SIZE)) { + if (shouldTrimParam(user, MAX_USER_SIZE)) { user.custom = {}; - if (shouldTrimParam(user, MAX_OBJ_SIZE)) { + if (shouldTrimParam(user, MAX_USER_SIZE)) { console.warn( 'statsigSDK> User object is too large, only keeping the user ID.', );