Skip to content

Commit bcc770e

Browse files
Replace deprecated String.substr() with String.slice()
1 parent 02c10e9 commit bcc770e

File tree

5 files changed

+25
-23
lines changed

5 files changed

+25
-23
lines changed

src/storages/KeyBuilderCS.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,7 @@ export class KeyBuilderCS extends KeyBuilder implements MySegmentsKeyBuilder {
2828
extractSegmentName(builtSegmentKeyName: string) {
2929
const prefix = `${this.prefix}.${this.matchingKey}.segment.`;
3030

31-
if (startsWith(builtSegmentKeyName, prefix))
32-
return builtSegmentKeyName.substr(prefix.length);
31+
if (startsWith(builtSegmentKeyName, prefix)) return builtSegmentKeyName.slice(prefix.length);
3332
}
3433

3534
buildLastUpdatedKey() {
@@ -54,7 +53,7 @@ export function myLargeSegmentsKeyBuilder(prefix: string, matchingKey: string):
5453
extractSegmentName(builtSegmentKeyName: string) {
5554
const p = `${prefix}.${matchingKey}.largeSegment.`;
5655

57-
if (startsWith(builtSegmentKeyName, p)) return builtSegmentKeyName.substr(p.length);
56+
if (startsWith(builtSegmentKeyName, p)) return builtSegmentKeyName.slice(p.length);
5857
},
5958

6059
buildTillKey() {

src/storages/types.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -422,13 +422,13 @@ export interface ITelemetryCacheAsync extends ITelemetryEvaluationProducerAsync,
422422
*/
423423

424424
export interface IStorageBase<
425-
TSplitsCache extends ISplitsCacheBase,
426-
TSegmentsCache extends ISegmentsCacheBase,
427-
TImpressionsCache extends IImpressionsCacheBase,
428-
TImpressionsCountCache extends IImpressionCountsCacheBase,
429-
TEventsCache extends IEventsCacheBase,
430-
TTelemetryCache extends ITelemetryCacheSync | ITelemetryCacheAsync,
431-
TUniqueKeysCache extends IUniqueKeysCacheBase
425+
TSplitsCache extends ISplitsCacheBase = ISplitsCacheBase,
426+
TSegmentsCache extends ISegmentsCacheBase = ISegmentsCacheBase,
427+
TImpressionsCache extends IImpressionsCacheBase = IImpressionsCacheBase,
428+
TImpressionsCountCache extends IImpressionCountsCacheBase = IImpressionCountsCacheBase,
429+
TEventsCache extends IEventsCacheBase = IEventsCacheBase,
430+
TTelemetryCache extends ITelemetryCacheSync | ITelemetryCacheAsync = ITelemetryCacheSync | ITelemetryCacheAsync,
431+
TUniqueKeysCache extends IUniqueKeysCacheBase = IUniqueKeysCacheBase
432432
> {
433433
splits: TSplitsCache,
434434
segments: TSegmentsCache,

src/sync/polling/syncTasks/splitsSyncTask.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ export function splitsSyncTaskFactory(
2222
splitChangesUpdaterFactory(
2323
settings.log,
2424
splitChangesFetcherFactory(fetchSplitChanges),
25-
storage.splits,
26-
storage.segments,
25+
storage,
2726
settings.sync.__splitFiltersValidation,
2827
readiness.splits,
2928
settings.startup.requestTimeoutBeforeReady,

src/sync/polling/updaters/__tests__/splitChangesUpdater.spec.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -158,17 +158,20 @@ describe('splitChangesUpdater', () => {
158158
const fetchSplitChanges = jest.spyOn(splitApi, 'fetchSplitChanges');
159159
const splitChangesFetcher = splitChangesFetcherFactory(splitApi.fetchSplitChanges);
160160

161-
const splitsCache = new SplitsCacheInMemory();
162-
const updateSplits = jest.spyOn(splitsCache, 'update');
161+
const splits = new SplitsCacheInMemory();
162+
const updateSplits = jest.spyOn(splits, 'update');
163+
164+
const segments = new SegmentsCacheInMemory();
165+
const registerSegments = jest.spyOn(segments, 'registerSegments');
166+
167+
const storage = { splits, segments };
163168

164-
const segmentsCache = new SegmentsCacheInMemory();
165-
const registerSegments = jest.spyOn(segmentsCache, 'registerSegments');
166169
const readinessManager = readinessManagerFactory(EventEmitter, fullSettings);
167170
const splitsEmitSpy = jest.spyOn(readinessManager.splits, 'emit');
168171

169172
let splitFiltersValidation = { queryString: null, groupedFilters: { bySet: [], byName: [], byPrefix: [] }, validFilters: [] };
170173

171-
let splitChangesUpdater = splitChangesUpdaterFactory(loggerMock, splitChangesFetcher, splitsCache, segmentsCache, splitFiltersValidation, readinessManager.splits, 1000, 1);
174+
let splitChangesUpdater = splitChangesUpdaterFactory(loggerMock, splitChangesFetcher, storage, splitFiltersValidation, readinessManager.splits, 1000, 1);
172175

173176
afterEach(() => {
174177
jest.clearAllMocks();
@@ -206,7 +209,7 @@ describe('splitChangesUpdater', () => {
206209
}
207210
});
208211

209-
test('flag sets splits-arrived emition', async () => {
212+
test('flag sets splits-arrived emission', async () => {
210213
const payload = splitNotifications[3].decoded as Pick<ISplit, 'name' | 'changeNumber' | 'killed' | 'defaultTreatment' | 'trafficTypeName' | 'conditions' | 'status' | 'seed' | 'trafficAllocation' | 'trafficAllocationSeed' | 'configurations'>;
211214
const setMocks = [
212215
{ sets: [], shouldEmit: false }, /* should not emit if flag does not have any set */
@@ -217,7 +220,7 @@ describe('splitChangesUpdater', () => {
217220
{ sets: ['set_a'], shouldEmit: true }, /* should emit if flag is back in configured sets */
218221
];
219222

220-
splitChangesUpdater = splitChangesUpdaterFactory(loggerMock, splitChangesFetcher, new SplitsCacheInMemory(), segmentsCache, splitFiltersValidation, readinessManager.splits, 1000, 1, true);
223+
splitChangesUpdater = splitChangesUpdaterFactory(loggerMock, splitChangesFetcher, storage, splitFiltersValidation, readinessManager.splits, 1000, 1, true);
221224

222225
let index = 0;
223226
let calls = 0;
@@ -230,7 +233,8 @@ describe('splitChangesUpdater', () => {
230233

231234
// @ts-ignore
232235
splitFiltersValidation = { queryString: null, groupedFilters: { bySet: ['set_a'], byName: [], byPrefix: [] }, validFilters: [] };
233-
splitChangesUpdater = splitChangesUpdaterFactory(loggerMock, splitChangesFetcher, new SplitsCacheInMemory(), segmentsCache, splitFiltersValidation, readinessManager.splits, 1000, 1, true);
236+
storage.splits.clear();
237+
splitChangesUpdater = splitChangesUpdaterFactory(loggerMock, splitChangesFetcher, storage, splitFiltersValidation, readinessManager.splits, 1000, 1, true);
234238
splitsEmitSpy.mockReset();
235239
index = 0;
236240
for (const setMock of setMocks) {

src/sync/polling/updaters/splitChangesUpdater.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ISegmentsCacheBase, ISplitsCacheBase } from '../../../storages/types';
1+
import { ISegmentsCacheBase, IStorageBase } from '../../../storages/types';
22
import { ISplitChangesFetcher } from '../fetchers/types';
33
import { ISplit, ISplitChangesResponse, ISplitFiltersValidation } from '../../../dtos/types';
44
import { ISplitsEventEmitter } from '../../../readiness/types';
@@ -111,14 +111,14 @@ export function computeSplitsMutation(entries: ISplit[], filters: ISplitFiltersV
111111
export function splitChangesUpdaterFactory(
112112
log: ILogger,
113113
splitChangesFetcher: ISplitChangesFetcher,
114-
splits: ISplitsCacheBase,
115-
segments: ISegmentsCacheBase,
114+
storage: Pick<IStorageBase, 'splits' | 'segments'>,
116115
splitFiltersValidation: ISplitFiltersValidation,
117116
splitsEventEmitter?: ISplitsEventEmitter,
118117
requestTimeoutBeforeReady: number = 0,
119118
retriesOnFailureBeforeReady: number = 0,
120119
isClientSide?: boolean
121120
): ISplitChangesUpdater {
121+
const { splits, segments } = storage;
122122

123123
let startingUp = true;
124124

0 commit comments

Comments
 (0)