UNPKG

@devcycle/js-client-sdk

Version:

The Javascript Client SDK for DevCycle

29 lines (28 loc) 1.17 kB
import type { BucketedUserConfig } from '@devcycle/types'; import { DVCPopulatedUser } from './User'; type PromiseResolver = { resolve: (value: BucketedUserConfig) => void; reject: (err?: any) => void; }; type RequestParams = { sse: boolean; lastModified?: number; etag?: string; }; /** * Ensures we only have one active config request at a time * any calls made while another is ongoing will be merged together by using the latest user object provided */ export declare class ConfigRequestConsolidator { private requestConfigFunction; private handleConfigReceivedFunction; private nextUser; currentPromise: Promise<BucketedUserConfig> | null; resolvers: PromiseResolver[]; requestParams: RequestParams | null; constructor(requestConfigFunction: (user: DVCPopulatedUser, params?: RequestParams) => Promise<BucketedUserConfig>, handleConfigReceivedFunction: (config: BucketedUserConfig, user: DVCPopulatedUser) => void, nextUser: DVCPopulatedUser); queue(user: DVCPopulatedUser | null, requestParams?: RequestParams): Promise<BucketedUserConfig>; private processQueue; private performRequest; } export {};