@launchdarkly/js-client-sdk-common 1.14.0 → 1.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/LDClientImpl.d.ts +11 -2
  3. package/dist/cjs/LDClientImpl.d.ts.map +1 -1
  4. package/dist/cjs/api/LDClient.d.ts +37 -0
  5. package/dist/cjs/api/LDClient.d.ts.map +1 -1
  6. package/dist/cjs/api/LDIdentifyOptions.d.ts +10 -0
  7. package/dist/cjs/api/LDIdentifyOptions.d.ts.map +1 -1
  8. package/dist/cjs/api/LDIdentifyResult.d.ts +28 -0
  9. package/dist/cjs/api/LDIdentifyResult.d.ts.map +1 -0
  10. package/dist/cjs/api/index.d.ts +1 -0
  11. package/dist/cjs/api/index.d.ts.map +1 -1
  12. package/dist/cjs/api/integrations/Hooks.d.ts +10 -1
  13. package/dist/cjs/api/integrations/Hooks.d.ts.map +1 -1
  14. package/dist/cjs/async/AsyncTaskQueue.d.ts +28 -9
  15. package/dist/cjs/async/AsyncTaskQueue.d.ts.map +1 -1
  16. package/dist/cjs/index.cjs +269 -37
  17. package/dist/cjs/index.cjs.map +1 -1
  18. package/dist/cjs/index.d.ts +1 -1
  19. package/dist/cjs/index.d.ts.map +1 -1
  20. package/dist/cjs/streaming/StreamingProcessor.d.ts +1 -0
  21. package/dist/cjs/streaming/StreamingProcessor.d.ts.map +1 -1
  22. package/dist/esm/LDClientImpl.d.ts +11 -2
  23. package/dist/esm/LDClientImpl.d.ts.map +1 -1
  24. package/dist/esm/api/LDClient.d.ts +37 -0
  25. package/dist/esm/api/LDClient.d.ts.map +1 -1
  26. package/dist/esm/api/LDIdentifyOptions.d.ts +10 -0
  27. package/dist/esm/api/LDIdentifyOptions.d.ts.map +1 -1
  28. package/dist/esm/api/LDIdentifyResult.d.ts +28 -0
  29. package/dist/esm/api/LDIdentifyResult.d.ts.map +1 -0
  30. package/dist/esm/api/index.d.ts +1 -0
  31. package/dist/esm/api/index.d.ts.map +1 -1
  32. package/dist/esm/api/integrations/Hooks.d.ts +10 -1
  33. package/dist/esm/api/integrations/Hooks.d.ts.map +1 -1
  34. package/dist/esm/async/AsyncTaskQueue.d.ts +28 -9
  35. package/dist/esm/async/AsyncTaskQueue.d.ts.map +1 -1
  36. package/dist/esm/index.d.ts +1 -1
  37. package/dist/esm/index.d.ts.map +1 -1
  38. package/dist/esm/index.mjs +270 -38
  39. package/dist/esm/index.mjs.map +1 -1
  40. package/dist/esm/streaming/StreamingProcessor.d.ts +1 -0
  41. package/dist/esm/streaming/StreamingProcessor.d.ts.map +1 -1
  42. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.15.0](https://github.com/launchdarkly/js-core/compare/js-client-sdk-common-v1.14.1...js-client-sdk-common-v1.15.0) (2025-06-17)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add support for an identify queue. ([#842](https://github.com/launchdarkly/js-core/issues/842)) ([78e9a5e](https://github.com/launchdarkly/js-core/commit/78e9a5e93cb4c06a19c0d7d63307dfd3407d4505))
9
+
10
+ ## [1.14.1](https://github.com/launchdarkly/js-core/compare/js-client-sdk-common-v1.14.0...js-client-sdk-common-v1.14.1) (2025-06-03)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * Discard events from closed connections. ([#867](https://github.com/launchdarkly/js-core/issues/867)) ([8119afe](https://github.com/launchdarkly/js-core/commit/8119afe855f0ae5760341bf73123dbb6a79dcf15))
16
+
3
17
  ## [1.14.0](https://github.com/launchdarkly/js-core/compare/js-client-sdk-common-v1.13.0...js-client-sdk-common-v1.14.0) (2025-05-21)
4
18
 
5
19
 
@@ -1,11 +1,11 @@
1
1
  import { AutoEnvAttributes, Context, internal, LDContext, LDFlagSet, LDFlagValue, LDLogger, LDPluginEnvironmentMetadata, Platform } from '@launchdarkly/js-sdk-common';
2
- import { Hook, LDClient, type LDOptions } from './api';
2
+ import { Hook, LDClient, LDClientIdentifyResult, LDIdentifyResult, type LDOptions } from './api';
3
3
  import { LDEvaluationDetail, LDEvaluationDetailTyped } from './api/LDEvaluationDetail';
4
4
  import { LDIdentifyOptions } from './api/LDIdentifyOptions';
5
5
  import { LDClientInternalOptions } from './configuration';
6
6
  import { DataManager, DataManagerFactory } from './DataManager';
7
7
  import LDEmitter, { EventName } from './LDEmitter';
8
- export default class LDClientImpl implements LDClient {
8
+ export default class LDClientImpl implements LDClient, LDClientIdentifyResult {
9
9
  readonly sdkKey: string;
10
10
  readonly autoEnvAttributes: AutoEnvAttributes;
11
11
  readonly platform: Platform;
@@ -26,6 +26,7 @@ export default class LDClientImpl implements LDClient {
26
26
  protected readonly environmentMetadata: LDPluginEnvironmentMetadata;
27
27
  private _hookRunner;
28
28
  private _inspectorManager;
29
+ private _identifyQueue;
29
30
  /**
30
31
  * Creates the client object synchronously. No async, no network calls.
31
32
  */
@@ -42,6 +43,13 @@ export default class LDClientImpl implements LDClient {
42
43
  /**
43
44
  * Identifies a context to LaunchDarkly. See {@link LDClient.identify}.
44
45
  *
46
+ * If used with the `sheddable` option set to true, then the identify operation will be sheddable. This means that if
47
+ * multiple identify operations are done, without waiting for the previous one to complete, then intermediate
48
+ * operations may be discarded.
49
+ *
50
+ * It is recommended to use the `identifyResult` method instead when the operation is sheddable. In a future release,
51
+ * all identify operations will default to being sheddable.
52
+ *
45
53
  * @param pristineContext The LDContext object to be identified.
46
54
  * @param identifyOptions Optional configuration. See {@link LDIdentifyOptions}.
47
55
  * @returns A Promise which resolves when the flag values for the specified
@@ -55,6 +63,7 @@ export default class LDClientImpl implements LDClient {
55
63
  * 3. A network error is encountered during initialization.
56
64
  */
57
65
  identify(pristineContext: LDContext, identifyOptions?: LDIdentifyOptions): Promise<void>;
66
+ identifyResult(pristineContext: LDContext, identifyOptions?: LDIdentifyOptions): Promise<LDIdentifyResult>;
58
67
  on(eventName: EventName, listener: Function): void;
59
68
  off(eventName: EventName, listener: Function): void;
60
69
  track(key: string, data?: any, metricValue?: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"LDClientImpl.d.ts","sourceRoot":"","sources":["../src/LDClientImpl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LDClientImpl.d.ts","sourceRoot":"","sources":["../src/LDClientImpl.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { LDContext, LDFlagSet, LDFlagValue, LDLogger } from '@launchdarkly/js-sd
2
2
  import { Hook } from './integrations/Hooks';
3
3
  import { LDEvaluationDetail, LDEvaluationDetailTyped } from './LDEvaluationDetail';
4
4
  import { LDIdentifyOptions } from './LDIdentifyOptions';
5
+ import { LDIdentifyResult } from './LDIdentifyResult';
5
6
  /**
6
7
  * The basic interface for the LaunchDarkly client. Platform-specific SDKs may add some methods of their own.
7
8
  *
@@ -87,6 +88,10 @@ export interface LDClient {
87
88
  * finished, calls to {@link variation} will still return flag values for the previous context. You can
88
89
  * await the Promise to determine when the new flag values are available.
89
90
  *
91
+ * If used with the `sheddable` option set to true, then the identify operation will be sheddable. This means that if
92
+ * multiple identify operations are done, without waiting for the previous one to complete, then intermediate
93
+ * operations may be discarded.
94
+ *
90
95
  * @param context
91
96
  * The LDContext object.
92
97
  * @param identifyOptions
@@ -311,4 +316,36 @@ export interface LDClient {
311
316
  */
312
317
  addHook(hook: Hook): void;
313
318
  }
319
+ /**
320
+ * Interface that extends the LDClient interface to include the identifyResult method.
321
+ *
322
+ * This is an independent interface for backwards compatibility. Adding this to the LDClient interface would require
323
+ * a breaking change.
324
+ */
325
+ export interface LDClientIdentifyResult {
326
+ /**
327
+ * Identifies a context to LaunchDarkly and returns a promise which resolves to an object containing the result of
328
+ * the identify operation.
329
+ *
330
+ * Unlike the server-side SDKs, the client-side JavaScript SDKs maintain a current context state,
331
+ * which is set when you call `identify()`.
332
+ *
333
+ * Changing the current context also causes all feature flag values to be reloaded. Until that has
334
+ * finished, calls to {@link variation} will still return flag values for the previous context. You can
335
+ * await the Promise to determine when the new flag values are available.
336
+ *
337
+ * If used with the `sheddable` option set to true, then the identify operation will be sheddable. This means that if
338
+ * multiple identify operations are done, without waiting for the previous one to complete, then intermediate
339
+ * operations may be discarded.
340
+ *
341
+ * @param context
342
+ * The LDContext object.
343
+ * @param identifyOptions
344
+ * Optional configuration. Please see {@link LDIdentifyOptions}.
345
+ * @returns
346
+ * A promise which resolves to an object containing the result of the identify operation.
347
+ * The promise returned from this method will not be rejected.
348
+ */
349
+ identifyResult(context: LDContext, identifyOptions?: LDIdentifyOptions): Promise<LDIdentifyResult>;
350
+ }
314
351
  //# sourceMappingURL=LDClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDClient.d.ts","sourceRoot":"","sources":["../../src/api/LDClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAE1F,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,QAAQ;IACvB;;;;;;;OAOG;IACH,QAAQ,IAAI,SAAS,CAAC;IAEtB;;;;;;;;;;OAUG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC;IAE3D;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE1F;;;OAGG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvB;;;;;;;;;OASG;IACH,KAAK,IAAI,OAAO,CAAC;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAErD;;;;;OAKG;IACH,UAAU,IAAI,SAAS,GAAG,SAAS,CAAC;IAEpC;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjF;;;;;;;;;;;OAWG;IACH,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,OAAO,CAAC;IAE3D;;;;;;;;;;;;;;;;;;OAkBG;IACH,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAE1F;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAE1B;;;;;;;;;;OAUG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAE1F;;;;;;;OAOG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAE3D;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IAE1D;;;;;;;;;;OAUG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAAC;IAE3D;;;;;;;;;;;;;;;;;;;OAmBG;IACH,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IAE1F;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE3D;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,WAAW,CAAC;IAEhE;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,WAAW,GAAG,kBAAkB,CAAC;IAE7E;;;;;;;OAOG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;CAC3B"}
1
+ {"version":3,"file":"LDClient.d.ts","sourceRoot":"","sources":["../../src/api/LDClient.ts"],"names":[],"mappings":"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"}
@@ -31,5 +31,15 @@ export interface LDIdentifyOptions {
31
31
  * not be required.
32
32
  */
33
33
  noTimeout?: boolean;
34
+ /**
35
+ * If true, the identify operation will be sheddable. This means that if multiple identify operations are started without
36
+ * waiting for the previous one to complete, then intermediate results will be discarded. When false, identify
37
+ * operations will be queued and completed sequentially.
38
+ *
39
+ * By default operations will be queued and completed sequentially.
40
+ *
41
+ * Defaults to false.
42
+ */
43
+ sheddable?: boolean;
34
44
  }
35
45
  //# sourceMappingURL=LDIdentifyOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LDIdentifyOptions.d.ts","sourceRoot":"","sources":["../../src/api/LDIdentifyOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
1
+ {"version":3,"file":"LDIdentifyOptions.d.ts","sourceRoot":"","sources":["../../src/api/LDIdentifyOptions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;;;;OASG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;OAQG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * The identify operation completed successfully.
3
+ */
4
+ export interface LDIdentifySuccess {
5
+ status: 'completed';
6
+ }
7
+ /**
8
+ * The identify operation encountered an error. This could include a malformed context, or a network error.
9
+ */
10
+ export interface LDIdentifyError {
11
+ status: 'error';
12
+ error: Error;
13
+ }
14
+ /**
15
+ * The identify operation timed out.
16
+ */
17
+ export interface LDIdentifyTimeout {
18
+ status: 'timeout';
19
+ timeout: number;
20
+ }
21
+ /**
22
+ * The identify operation was shed.
23
+ */
24
+ export interface LDIdentifyShed {
25
+ status: 'shed';
26
+ }
27
+ export type LDIdentifyResult = LDIdentifySuccess | LDIdentifyError | LDIdentifyTimeout | LDIdentifyShed;
28
+ //# sourceMappingURL=LDIdentifyResult.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LDIdentifyResult.d.ts","sourceRoot":"","sources":["../../src/api/LDIdentifyResult.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,SAAS,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,cAAc,CAAC"}
@@ -6,4 +6,5 @@ export * from './integrations';
6
6
  export { ConnectionMode };
7
7
  export * from './LDIdentifyOptions';
8
8
  export * from './LDInspection';
9
+ export * from './LDIdentifyResult';
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAE9C,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,gBAAgB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC"}
@@ -60,8 +60,12 @@ export interface IdentifySeriesData {
60
60
  *
61
61
  * An example in which an error may occur is lack of network connectivity
62
62
  * preventing the SDK from functioning.
63
+ *
64
+ * The SDK may also shed an identify operation if it is not needed. In which case
65
+ * the status will be 'shed'. For SDKs that default to non-sheddable, the status
66
+ * will only ever be 'shed' if the user has opted into a sheddable identify.
63
67
  */
64
- export type IdentifySeriesStatus = 'completed' | 'error';
68
+ export type IdentifySeriesStatus = 'completed' | 'error' | 'shed';
65
69
  /**
66
70
  * The result applies to a single identify operation. An operation may complete
67
71
  * with an error and then later complete successfully. Only the first completion
@@ -157,6 +161,11 @@ export interface Hook {
157
161
  * This method is called during the execution of the identify process, after the operation
158
162
  * completes.
159
163
  *
164
+ * The beforeIdentify methods will be called in the order of the identify calls to the SDK,
165
+ * but afterIdentify may not be in the same order. This is because the SDK may shed an identify
166
+ * operation if it is not needed. This will result in the afterIdentify method potentially being
167
+ * called in a different order than beforeIdentify.
168
+ *
160
169
  * @param hookContext Contains information about the evaluation being performed. This is not
161
170
  * mutable.
162
171
  * @param data A record associated with each stage of hook invocations. Each stage is called with
@@ -1 +1 @@
1
- {"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../../src/api/integrations/Hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAOhC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED;;;;;GAKG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,OAAO,CAAC;AAEzD;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,WAAW,IAAI,YAAY,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,CACf,WAAW,EAAE,uBAAuB,EACpC,IAAI,EAAE,oBAAoB,GACzB,oBAAoB,CAAC;IAExB;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,CACd,WAAW,EAAE,uBAAuB,EACpC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,kBAAkB,GACzB,oBAAoB,CAAC;IAExB;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,CAAC,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAAC;IAElG;;;;;;;;;;;;;;OAcG;IACH,aAAa,CAAC,CACZ,WAAW,EAAE,qBAAqB,EAClC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,oBAAoB,GAC3B,kBAAkB,CAAC;IAEtB;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACpD"}
1
+ {"version":3,"file":"Hooks.d.ts","sourceRoot":"","sources":["../../../src/api/integrations/Hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAC7B;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAOhC;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,oBAAoB,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,oBAAoB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB;;OAEG;IACH,WAAW,IAAI,YAAY,CAAC;IAE5B;;;;;;;;;;;;;;OAcG;IACH,gBAAgB,CAAC,CACf,WAAW,EAAE,uBAAuB,EACpC,IAAI,EAAE,oBAAoB,GACzB,oBAAoB,CAAC;IAExB;;;;;;;;;;;;;;;;OAgBG;IACH,eAAe,CAAC,CACd,WAAW,EAAE,uBAAuB,EACpC,IAAI,EAAE,oBAAoB,EAC1B,MAAM,EAAE,kBAAkB,GACzB,oBAAoB,CAAC;IAExB;;;;;;;;;;;;;;OAcG;IACH,cAAc,CAAC,CAAC,WAAW,EAAE,qBAAqB,EAAE,IAAI,EAAE,kBAAkB,GAAG,kBAAkB,CAAC;IAElG;;;;;;;;;;;;;;;;;;;OAmBG;IACH,aAAa,CAAC,CACZ,WAAW,EAAE,qBAAqB,EAClC,IAAI,EAAE,kBAAkB,EACxB,MAAM,EAAE,oBAAoB,GAC3B,kBAAkB,CAAC;IAEtB;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACpD"}
@@ -24,6 +24,22 @@ export interface ErroredTask {
24
24
  * Represents the result of a task.
25
25
  */
26
26
  export type TaskResult<TTaskResult> = CompletedTask<TTaskResult> | ErroredTask | ShedTask;
27
+ export interface Task<TTaskResult, TBeforeResult> {
28
+ /**
29
+ * Method ran before the task is executed or shed.
30
+ */
31
+ before?: () => Promise<TBeforeResult>;
32
+ /**
33
+ * Execute the task. This is not ran if the task is shed.
34
+ * @returns The result of the task.
35
+ */
36
+ execute: (beforeResult?: TBeforeResult) => Promise<TTaskResult>;
37
+ /**
38
+ * Method ran after the task is executed or shed.
39
+ * @param result The result of the task.
40
+ */
41
+ after?: (result: TaskResult<TTaskResult>, beforeResult?: TBeforeResult) => void;
42
+ }
27
43
  /**
28
44
  * An asynchronous task queue with the ability to replace pending tasks.
29
45
  *
@@ -33,7 +49,7 @@ export type TaskResult<TTaskResult> = CompletedTask<TTaskResult> | ErroredTask |
33
49
  * For instance, the SDK can only have one active context at a time, if you request identification of many contexts,
34
50
  * then the ultimate state will be based on the last request. The intermediate identifies can be discarded.
35
51
  *
36
- * This class will always begin execution of the first item added to the queue, at that point the item itself is not
52
+ * This queue will always begin execution of the first item added to the queue, at that point the item itself is not
37
53
  * queued, but active. If another request is made while that item is still active, then it is added to the queue.
38
54
  * A third request would then replace the second request if the second request had not yet become active, and it was
39
55
  * sheddable.
@@ -49,11 +65,7 @@ export type TaskResult<TTaskResult> = CompletedTask<TTaskResult> | ErroredTask |
49
65
  * Queue management should be done synchronously. There should not be asynchronous operations between checking the queue
50
66
  * and acting on the results of said check.
51
67
  */
52
- export declare class AsyncTaskQueue<TTaskResult> {
53
- private readonly _logger?;
54
- private _activeTask?;
55
- private _queue;
56
- constructor(_logger?: LDLogger | undefined);
68
+ export declare function createAsyncTaskQueue<TTaskResult>(logger?: LDLogger): {
57
69
  /**
58
70
  * Execute a task using the queue.
59
71
  *
@@ -61,7 +73,14 @@ export declare class AsyncTaskQueue<TTaskResult> {
61
73
  * @param sheddable Whether the task can be shed from the queue.
62
74
  * @returns A promise that resolves to the result of the task.
63
75
  */
64
- execute(task: () => Promise<TTaskResult>, sheddable?: boolean): Promise<TaskResult<TTaskResult>>;
65
- private _checkPending;
66
- }
76
+ execute<TBeforeResult>(task: Task<TTaskResult, TBeforeResult>, sheddable?: boolean): Promise<TaskResult<TTaskResult>>;
77
+ /**
78
+ * Returns the number of pending tasks in the queue.
79
+ * Intended for testing purposes only.
80
+ *
81
+ * @internal
82
+ * @returns The number of pending tasks in the queue.
83
+ */
84
+ pendingCount(): number;
85
+ };
67
86
  //# sourceMappingURL=AsyncTaskQueue.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AsyncTaskQueue.d.ts","sourceRoot":"","sources":["../../src/async/AsyncTaskQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,WAAW;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,QAAQ,CAAC;AA2D1F;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,cAAc,CAAC,WAAW;IAIzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAHrC,OAAO,CAAC,WAAW,CAAC,CAAmC;IACvD,OAAO,CAAC,MAAM,CAAkC;gBAEnB,OAAO,CAAC,sBAAU;IAE/C;;;;;;OAMG;IACH,OAAO,CACL,IAAI,EAAE,MAAM,OAAO,CAAC,WAAW,CAAC,EAChC,SAAS,GAAE,OAAe,GACzB,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAoBnC,OAAO,CAAC,aAAa;CA6BtB"}
1
+ {"version":3,"file":"AsyncTaskQueue.d.ts","sourceRoot":"","sources":["../../src/async/AsyncTaskQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,WAAW;IACxC,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CACd;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW,GAAG,QAAQ,CAAC;AAa1F,MAAM,WAAW,IAAI,CAAC,WAAW,EAAE,aAAa;IAC9C;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,CAAC;IAEtC;;;OAGG;IAEH,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,aAAa,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;IAEhE;;;OAGG;IACH,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;CACjF;AAoED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,QAAQ;IAwB/D;;;;;;OAMG;+EAGU,OAAO,GACjB,QAAQ,WAAW,WAAW,CAAC,CAAC;IAoBnC;;;;;;OAMG;oBACa,MAAM;EAIzB"}