Skip to content

Commit cb807b5

Browse files
Merge branch 'development' of github.com:splitio/javascript-commons into fme-12059
2 parents c9795ea + ce66507 commit cb807b5

11 files changed

Lines changed: 32 additions & 6049 deletions

File tree

.nvmrc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
lts/*
1+
22

CHANGES.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
2.10.1 (December 18, 2025)
2+
- Bugfix - Handle `null` prerequisites properly.
3+
14
2.10.0 (December 16, 2025)
25
- Added property `impressionsDisabled` in getTreatment(s) `evaluationOptions` parameter, to disable impressions per evaluations.
36

package-lock.json

Lines changed: 16 additions & 6041 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@splitsoftware/splitio-commons",
3-
"version": "2.10.0",
3+
"version": "2.10.1",
44
"description": "Split JavaScript SDK common components",
55
"main": "cjs/index.js",
66
"module": "esm/index.js",

src/dtos/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ export interface ISplit {
220220
changeNumber: number,
221221
status: 'ACTIVE' | 'ARCHIVED',
222222
conditions: ISplitCondition[],
223-
prerequisites?: {
223+
prerequisites?: null | {
224224
n: string,
225225
ts: string[]
226226
}[]

src/evaluator/matchers/__tests__/prerequisites.spec.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,9 @@ test('MATCHER PREREQUISITES / Edge cases', () => {
7373
const matcherTrueNoPrerequisites = prerequisitesMatcherContext(undefined, mockStorage, loggerMock);
7474
expect(matcherTrueNoPrerequisites({ key: 'a-key' }, evaluateFeature)).toBe(true);
7575

76+
const matcherTruePrerequisitesNull = prerequisitesMatcherContext(null, mockStorage, loggerMock);
77+
expect(matcherTruePrerequisitesNull({ key: 'a-key' }, evaluateFeature)).toBe(true);
78+
7679
const matcherTrueEmptyPrerequisites = prerequisitesMatcherContext([], mockStorage, loggerMock);
7780
expect(matcherTrueEmptyPrerequisites({ key: 'a-key' }, evaluateFeature)).toBe(true);
7881

src/evaluator/matchers/prerequisites.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import { ILogger } from '../../logger/types';
44
import { thenable } from '../../utils/promise/thenable';
55
import { IDependencyMatcherValue, ISplitEvaluator } from '../types';
66

7-
export function prerequisitesMatcherContext(prerequisites: ISplit['prerequisites'] = [], storage: IStorageSync | IStorageAsync, log: ILogger) {
7+
export function prerequisitesMatcherContext(prerequisites: ISplit['prerequisites'], storage: IStorageSync | IStorageAsync, log: ILogger) {
88

99
return function prerequisitesMatcher({ key, attributes }: IDependencyMatcherValue, splitEvaluator: ISplitEvaluator): MaybeThenable<boolean> {
1010

11+
prerequisites = prerequisites == null ? [] : prerequisites;
12+
1113
function evaluatePrerequisite(prerequisite: { n: string; ts: string[] }): MaybeThenable<boolean> {
1214
const evaluation = splitEvaluator(log, key, prerequisite.n, attributes, storage);
1315
return thenable(evaluation) ?

src/sync/polling/updaters/segmentChangesUpdater.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ export function segmentChangesUpdaterFactory(
3939

4040
function updateSegment(segmentName: string, noCache?: boolean, till?: number, fetchOnlyNew?: boolean, retries?: number): Promise<boolean> {
4141
log.debug(`${LOG_PREFIX_SYNC_SEGMENTS}Processing segment ${segmentName}`);
42-
let sincePromise = Promise.resolve(segments.getChangeNumber(segmentName));
42+
const sincePromise = Promise.resolve(segments.getChangeNumber(segmentName));
4343

4444
return sincePromise.then(since => {
4545
// if fetchOnlyNew flag, avoid processing already fetched segments

src/sync/submitters/submitterManager.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export function submitterManagerFactory(params: ISdkFactoryContextSync): ISubmit
3838
execute(onlyTelemetry?: boolean) {
3939
const promises = onlyTelemetry ? [] : submitters.map(submitter => submitter.execute());
4040
if (telemetrySubmitter) promises.push(telemetrySubmitter.execute());
41-
return Promise.all(promises);
41+
return Promise.all(promises).then(() => { });
4242
},
4343

4444
isExecuting() {

src/sync/submitters/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,5 +237,5 @@ export type TelemetryConfigStatsPayload = TelemetryConfigStats & {
237237
export interface ISubmitterManager extends ISyncTask {
238238
start(onlyTelemetry?: boolean): void,
239239
stop(allExceptTelemetry?: boolean): void,
240-
execute(onlyTelemetry?: boolean): Promise<any>
240+
execute(onlyTelemetry?: boolean): Promise<void>
241241
}

0 commit comments

Comments
 (0)