Skip to content

Commit 6d08baa

Browse files
Add support for skipInitialPoll parameter (FF-2084) (#64)
* bump to commons 3.0.6; add LocalStorageBackedAsyncStore (FF-1980) * Add support for skipInitialPoll parameter (FF-2084) * rename to skipInitialRequest
1 parent 13777e3 commit 6d08baa

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

src/index.spec.ts

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -506,6 +506,28 @@ describe('initialization options', () => {
506506
expect(client.getStringAssignment(flagKey, 'subject', {}, 'default-value')).toBe('control');
507507
});
508508

509+
it('skips initial request', async () => {
510+
let callCount = 0;
511+
512+
global.fetch = jest.fn(() => {
513+
callCount += 1;
514+
515+
return Promise.resolve({
516+
ok: true,
517+
status: 200,
518+
json: () => Promise.resolve(mockConfigResponse),
519+
});
520+
}) as jest.Mock;
521+
522+
await init({
523+
apiKey,
524+
baseUrl,
525+
assignmentLogger: mockLogger,
526+
skipInitialRequest: true,
527+
});
528+
expect(callCount).toBe(0);
529+
});
530+
509531
describe('With reloaded index module', () => {
510532
// eslint-disable-next-line @typescript-eslint/ban-types
511533
let init: Function;

src/index.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,11 @@ export interface IClientConfig {
6464
* backoff. (Default: 7)
6565
*/
6666
numPollRequestRetries?: number;
67+
68+
/**
69+
* Skip the request for new configurations during initialization. (default: false)
70+
*/
71+
skipInitialRequest?: boolean;
6772
}
6873

6974
export { IAssignmentLogger, IAssignmentEvent, IEppoClient } from '@eppo/js-client-sdk-common';
@@ -160,6 +165,7 @@ export async function init(config: IClientConfig): Promise<IEppoClient> {
160165
pollAfterSuccessfulInitialization: config.pollAfterSuccessfulInitialization ?? false,
161166
pollAfterFailedInitialization: config.pollAfterFailedInitialization ?? false,
162167
throwOnFailedInitialization: true, // always use true here as underlying instance fetch is surrounded by try/catch
168+
skipInitialPoll: config.skipInitialRequest ?? false,
163169
};
164170

165171
EppoJSClient.instance.setLogger(config.assignmentLogger);

0 commit comments

Comments
 (0)