Skip to content

Commit e0db405

Browse files
Polishing
1 parent 485d432 commit e0db405

4 files changed

Lines changed: 19 additions & 8 deletions

File tree

src/logger/messages/warn.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ export const codesWarn: [number, string][] = codesError.concat([
77
[c.ENGINE_VALUE_NO_ATTRIBUTES, c.LOG_PREFIX_ENGINE_VALUE + 'Defined attribute `%s`. No attributes received.'],
88
// synchronizer
99
[c.SYNC_MYSEGMENTS_FETCH_RETRY, c.LOG_PREFIX_SYNC_MYSEGMENTS + 'Retrying fetch of memberships (attempt #%s). Reason: %s'],
10-
[c.SYNC_SPLITS_FETCH_FAILS, c.LOG_PREFIX_SYNC_SPLITS + 'Error while doing fetch of feature flags. %s'],
10+
[c.SYNC_SPLITS_FETCH_FAILS, c.LOG_PREFIX_SYNC_SPLITS + 'Error while doing fetch of %s'],
1111
[c.STREAMING_PARSING_ERROR_FAILS, c.LOG_PREFIX_SYNC_STREAMING + 'Error parsing SSE error notification: %s'],
1212
[c.STREAMING_PARSING_MESSAGE_FAILS, c.LOG_PREFIX_SYNC_STREAMING + 'Error parsing SSE message notification: %s'],
1313
[c.STREAMING_FALLBACK, c.LOG_PREFIX_SYNC_STREAMING + 'Falling back to polling mode. Reason: %s'],

src/sync/polling/pollingManagerSS.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@ import { segmentsSyncTaskFactory } from './syncTasks/segmentsSyncTask';
33
import { IPollingManager, ISegmentsSyncTask, ISplitsSyncTask } from './types';
44
import { LOG_PREFIX_SYNC_POLLING, POLLING_START, POLLING_STOP } from '../../logger/constants';
55
import { ISdkFactoryContextSync } from '../../sdkFactory/types';
6+
import { ISettings } from '../../types';
7+
8+
export function isFetchingConfigs(settings: Pick<ISettings, 'definitionsType'>) {
9+
return settings.definitionsType === 'configs';
10+
}
611

712
/**
813
* Expose start / stop mechanism for pulling data from services.
@@ -14,7 +19,7 @@ export function pollingManagerSSFactory(
1419
const { splitApi, storage, readiness, settings } = params;
1520
const log = settings.log;
1621

17-
const fetchingConfigs = settings.definitionsType === 'configs';
22+
const fetchingConfigs = isFetchingConfigs(settings);
1823

1924
const splitsSyncTask: ISplitsSyncTask = splitsSyncTaskFactory(fetchingConfigs ? splitApi.fetchConfigs : splitApi.fetchSplitChanges, storage, readiness, settings);
2025
const segmentsSyncTask: ISegmentsSyncTask = segmentsSyncTaskFactory(splitApi.fetchSegmentChanges, storage, readiness, settings);

src/sync/polling/syncTasks/splitsSyncTask.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@ import { IReadinessManager } from '../../../readiness/types';
33
import { syncTaskFactory } from '../../syncTask';
44
import { ISplitsSyncTask } from '../types';
55
import { splitChangesFetcherFactory } from '../fetchers/splitChangesFetcher';
6+
import { configsFetcherFactory } from '../fetchers/configsFetcher';
67
import { IFetchSplitChanges } from '../../../services/types';
78
import { ISettings } from '../../../types';
89
import { splitChangesUpdaterFactory } from '../updaters/splitChangesUpdater';
10+
import { isFetchingConfigs } from '../pollingManagerSS';
911

1012
/**
1113
* Creates a sync task that periodically executes a `splitChangesUpdater` task
@@ -17,19 +19,22 @@ export function splitsSyncTaskFactory(
1719
settings: ISettings,
1820
isClientSide?: boolean
1921
): ISplitsSyncTask {
22+
const fetcher = isFetchingConfigs(settings)
23+
? configsFetcherFactory(fetchSplitChanges)
24+
: splitChangesFetcherFactory(fetchSplitChanges, settings, storage);
2025
return syncTaskFactory(
2126
settings.log,
2227
splitChangesUpdaterFactory(
2328
settings,
24-
splitChangesFetcherFactory(fetchSplitChanges, settings, storage),
29+
fetcher,
2530
storage,
2631
settings.sync.__splitFiltersValidation,
2732
readiness.splits,
2833
settings.startup.requestTimeoutBeforeReady,
2934
settings.startup.retriesOnFailureBeforeReady,
3035
isClientSide
3136
),
32-
settings.definitionsType === 'configs' ? settings.scheduler.configsRefreshRate : settings.scheduler.featuresRefreshRate,
33-
settings.definitionsType === 'configs' ? 'configsUpdater' : 'splitChangesUpdater',
37+
isFetchingConfigs(settings) ? settings.scheduler.configsRefreshRate : settings.scheduler.featuresRefreshRate,
38+
isFetchingConfigs(settings) ? 'configsUpdater' : 'splitChangesUpdater',
3439
);
3540
}

src/sync/polling/updaters/splitChangesUpdater.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { setToArray } from '../../../utils/lang/sets';
1111
import { SPLIT_UPDATE } from '../../streaming/constants';
1212
import { SdkUpdateMetadata } from '../../../../types/splitio';
1313
import { ISettings } from '../../../types';
14+
import { isFetchingConfigs } from '../pollingManagerSS';
1415

1516
export type InstantUpdate = { payload: ISplit | IRBSegment, changeNumber: number, type: string };
1617
type SplitChangesUpdater = (noCache?: boolean, till?: number, instantUpdate?: InstantUpdate) => Promise<boolean>
@@ -129,7 +130,7 @@ export function splitChangesUpdaterFactory(
129130
retriesOnFailureBeforeReady = 0,
130131
isClientSide?: boolean
131132
): SplitChangesUpdater {
132-
const { log, definitionsType } = settings;
133+
const { log } = settings;
133134
const { splits, rbSegments, segments } = storage;
134135

135136
let startingUp = true;
@@ -204,7 +205,7 @@ export function splitChangesUpdaterFactory(
204205
if (emitSplitsArrivedEvent) {
205206
const metadata: SdkUpdateMetadata = {
206207
type: updatedFlags.length > 0 ?
207-
definitionsType === 'configs' ? CONFIGS_UPDATE : FLAGS_UPDATE :
208+
isFetchingConfigs(settings) ? CONFIGS_UPDATE : FLAGS_UPDATE :
208209
SEGMENTS_UPDATE,
209210
names: updatedFlags.length > 0 ? updatedFlags : []
210211
};
@@ -223,7 +224,7 @@ export function splitChangesUpdaterFactory(
223224
return _splitChangesUpdater(sinces, retry);
224225
} else {
225226
startingUp = false;
226-
log.warn(SYNC_SPLITS_FETCH_FAILS, [error]);
227+
log.warn(SYNC_SPLITS_FETCH_FAILS, [(isFetchingConfigs(settings) ? 'configs. ' : 'feature flags. ') + error]);
227228
}
228229
return false;
229230
});

0 commit comments

Comments
 (0)