@openfeature/web-sdk 0.3.7-experimental → 0.3.9-experimental
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.
- package/dist/cjs/index.js +38 -22
- package/dist/cjs/index.js.map +2 -2
- package/dist/esm/index.js +38 -22
- package/dist/esm/index.js.map +2 -2
- package/dist/types.d.ts +84 -25
- package/package.json +1 -1
package/dist/types.d.ts
CHANGED
|
@@ -20,13 +20,28 @@ declare enum ProviderEvents {
|
|
|
20
20
|
type EventMetadata = {
|
|
21
21
|
[key: string]: string | boolean | number;
|
|
22
22
|
};
|
|
23
|
-
type
|
|
23
|
+
type CommonEventDetails = {
|
|
24
24
|
clientName?: string;
|
|
25
|
+
};
|
|
26
|
+
type CommonEventProps = {
|
|
25
27
|
message?: string;
|
|
26
|
-
flagsChanged?: string[];
|
|
27
28
|
metadata?: EventMetadata;
|
|
28
29
|
};
|
|
29
|
-
type
|
|
30
|
+
type ReadyEvent = CommonEventProps;
|
|
31
|
+
type ErrorEvent = CommonEventProps;
|
|
32
|
+
type StaleEvent = CommonEventProps;
|
|
33
|
+
type ConfigChangeEvent = CommonEventProps & {
|
|
34
|
+
flagsChanged?: string[];
|
|
35
|
+
};
|
|
36
|
+
type EventMap = {
|
|
37
|
+
[ProviderEvents.Ready]: ReadyEvent;
|
|
38
|
+
[ProviderEvents.Error]: ErrorEvent;
|
|
39
|
+
[ProviderEvents.Stale]: StaleEvent;
|
|
40
|
+
[ProviderEvents.ConfigurationChanged]: ConfigChangeEvent;
|
|
41
|
+
};
|
|
42
|
+
type EventContext<T extends ProviderEvents, U extends Record<string, unknown> = Record<string, unknown>> = EventMap[T] & U;
|
|
43
|
+
type EventDetails<T extends ProviderEvents> = EventContext<T> & CommonEventDetails;
|
|
44
|
+
type EventHandler<T extends ProviderEvents> = (eventDetails?: EventDetails<T>) => Promise<unknown> | unknown;
|
|
30
45
|
interface Eventing {
|
|
31
46
|
/**
|
|
32
47
|
* Adds a handler for the given provider event type.
|
|
@@ -34,19 +49,19 @@ interface Eventing {
|
|
|
34
49
|
* @param {ProviderEvents} eventType The provider event type to listen to
|
|
35
50
|
* @param {EventHandler} handler The handler to run on occurrence of the event type
|
|
36
51
|
*/
|
|
37
|
-
addHandler(eventType:
|
|
52
|
+
addHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
38
53
|
/**
|
|
39
54
|
* Removes a handler for the given provider event type.
|
|
40
55
|
* @param {ProviderEvents} eventType The provider event type to remove the listener for
|
|
41
56
|
* @param {EventHandler} handler The handler to remove for the provider event type
|
|
42
57
|
*/
|
|
43
|
-
removeHandler(eventType:
|
|
58
|
+
removeHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
44
59
|
/**
|
|
45
60
|
* Gets the current handlers for the given provider event type.
|
|
46
61
|
* @param {ProviderEvents} eventType The provider event type to get the current handlers for
|
|
47
62
|
* @returns {EventHandler[]} The handlers currently attached to the given provider event type
|
|
48
63
|
*/
|
|
49
|
-
getHandlers(eventType:
|
|
64
|
+
getHandlers<T extends ProviderEvents>(eventType: T): EventHandler<T>[];
|
|
50
65
|
}
|
|
51
66
|
|
|
52
67
|
interface Logger {
|
|
@@ -87,20 +102,36 @@ declare class SafeLogger implements Logger {
|
|
|
87
102
|
private log;
|
|
88
103
|
}
|
|
89
104
|
|
|
90
|
-
declare class
|
|
105
|
+
declare abstract class GenericEventEmitter<AdditionalContext extends Record<string, unknown> = Record<string, unknown>> implements ManageLogger<GenericEventEmitter<AdditionalContext>> {
|
|
91
106
|
private readonly globalLogger?;
|
|
92
107
|
private readonly _handlers;
|
|
93
108
|
private readonly eventEmitter;
|
|
94
109
|
private _eventLogger?;
|
|
95
110
|
constructor(globalLogger?: (() => Logger) | undefined);
|
|
96
|
-
emit(eventType:
|
|
97
|
-
addHandler(eventType:
|
|
98
|
-
removeHandler(eventType:
|
|
111
|
+
emit<T extends ProviderEvents>(eventType: T, context?: EventContext<T, AdditionalContext>): void;
|
|
112
|
+
addHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
113
|
+
removeHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
99
114
|
removeAllHandlers(eventType?: ProviderEvents): void;
|
|
100
|
-
getHandlers(eventType:
|
|
115
|
+
getHandlers<T extends ProviderEvents>(eventType: T): EventHandler<T>[];
|
|
101
116
|
setLogger(logger: Logger): this;
|
|
102
117
|
private get _logger();
|
|
103
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* The OpenFeatureEventEmitter can be used by provider developers to emit
|
|
121
|
+
* events at various parts of the provider lifecycle.
|
|
122
|
+
*
|
|
123
|
+
* NOTE: Ready and error events are automatically emitted by the SDK based on
|
|
124
|
+
* the result of the initialize method.
|
|
125
|
+
*/
|
|
126
|
+
declare class OpenFeatureEventEmitter extends GenericEventEmitter {
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* The InternalEventEmitter should only be used within the SDK. It extends the
|
|
130
|
+
* OpenFeatureEventEmitter to include additional properties that can be included
|
|
131
|
+
* in the event details.
|
|
132
|
+
*/
|
|
133
|
+
declare class InternalEventEmitter extends GenericEventEmitter<CommonEventDetails> {
|
|
134
|
+
}
|
|
104
135
|
|
|
105
136
|
interface Metadata {
|
|
106
137
|
}
|
|
@@ -235,26 +266,53 @@ interface ManageContext<T> {
|
|
|
235
266
|
setContext(context: EvaluationContext): T;
|
|
236
267
|
}
|
|
237
268
|
|
|
269
|
+
/**
|
|
270
|
+
* The state of the provider.
|
|
271
|
+
*/
|
|
238
272
|
declare enum ProviderStatus {
|
|
273
|
+
/**
|
|
274
|
+
* The provider has not been initialized and cannot yet evaluate flags.
|
|
275
|
+
*/
|
|
239
276
|
NOT_READY = "NOT_READY",
|
|
277
|
+
/**
|
|
278
|
+
* The provider is ready to resolve flags.
|
|
279
|
+
*/
|
|
240
280
|
READY = "READY",
|
|
281
|
+
/**
|
|
282
|
+
* The provider is in an error state and unable to evaluate flags.
|
|
283
|
+
*/
|
|
241
284
|
ERROR = "ERROR"
|
|
242
285
|
}
|
|
286
|
+
/**
|
|
287
|
+
* Static data about the provider.
|
|
288
|
+
*/
|
|
243
289
|
interface ProviderMetadata extends Metadata {
|
|
244
290
|
readonly name: string;
|
|
245
291
|
}
|
|
246
292
|
interface CommonProvider {
|
|
247
293
|
readonly metadata: ProviderMetadata;
|
|
294
|
+
/**
|
|
295
|
+
* Returns a representation of the current readiness of the provider.
|
|
296
|
+
* If the provider needs to be initialized, it should return {@link ProviderStatus.READY}.
|
|
297
|
+
* If the provider is in an error state, it should return {@link ProviderStatus.ERROR}.
|
|
298
|
+
* If the provider is functioning normally, it should return {@link ProviderStatus.NOT_READY}.
|
|
299
|
+
*
|
|
300
|
+
* _Providers which do not implement this method are assumed to be ready immediately._
|
|
301
|
+
*/
|
|
248
302
|
readonly status?: ProviderStatus;
|
|
249
303
|
/**
|
|
250
304
|
* An event emitter for ProviderEvents.
|
|
251
305
|
* @see ProviderEvents
|
|
252
306
|
*/
|
|
253
307
|
events?: OpenFeatureEventEmitter;
|
|
308
|
+
/**
|
|
309
|
+
* A function used to shut down the provider.
|
|
310
|
+
* Called when this provider is replaced with a new one, or when the OpenFeature is shut down.
|
|
311
|
+
*/
|
|
254
312
|
onClose?(): Promise<void>;
|
|
255
313
|
/**
|
|
256
|
-
* A
|
|
257
|
-
* Called by the SDK after the provider is set.
|
|
314
|
+
* A function used to setup the provider.
|
|
315
|
+
* Called by the SDK after the provider is set if the provider's status is {@link ProviderStatus.NOT_READY}.
|
|
258
316
|
* When the returned promise resolves, the SDK fires the ProviderEvents.Ready event.
|
|
259
317
|
* If the returned promise rejects, the SDK fires the ProviderEvents.Error event.
|
|
260
318
|
* Use this function to perform any context-dependent setup within the provider.
|
|
@@ -460,7 +518,7 @@ declare abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonPro
|
|
|
460
518
|
private readonly _events;
|
|
461
519
|
private readonly _clientEventHandlers;
|
|
462
520
|
protected _clientProviders: Map<string, P>;
|
|
463
|
-
protected _clientEvents: Map<string | undefined,
|
|
521
|
+
protected _clientEvents: Map<string | undefined, InternalEventEmitter>;
|
|
464
522
|
addHooks(...hooks: Hook<FlagValue>[]): this;
|
|
465
523
|
getHooks(): Hook<FlagValue>[];
|
|
466
524
|
clearHooks(): this;
|
|
@@ -477,19 +535,19 @@ declare abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonPro
|
|
|
477
535
|
* @param {ProviderEvents} eventType The provider event type to listen to
|
|
478
536
|
* @param {EventHandler} handler The handler to run on occurrence of the event type
|
|
479
537
|
*/
|
|
480
|
-
addHandler(eventType:
|
|
538
|
+
addHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
481
539
|
/**
|
|
482
540
|
* Removes a handler for the given provider event type.
|
|
483
541
|
* @param {ProviderEvents} eventType The provider event type to remove the listener for
|
|
484
542
|
* @param {EventHandler} handler The handler to remove for the provider event type
|
|
485
543
|
*/
|
|
486
|
-
removeHandler(eventType:
|
|
544
|
+
removeHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
487
545
|
/**
|
|
488
546
|
* Gets the current handlers for the given provider event type.
|
|
489
547
|
* @param {ProviderEvents} eventType The provider event type to get the current handlers for
|
|
490
548
|
* @returns {EventHandler[]} The handlers currently attached to the given provider event type
|
|
491
549
|
*/
|
|
492
|
-
getHandlers(eventType:
|
|
550
|
+
getHandlers<T extends ProviderEvents>(eventType: T): EventHandler<T>[];
|
|
493
551
|
/**
|
|
494
552
|
* Sets the default provider for flag evaluations.
|
|
495
553
|
* This provider will be used by unnamed clients and named clients to which no provider is bound.
|
|
@@ -509,8 +567,9 @@ declare abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonPro
|
|
|
509
567
|
*/
|
|
510
568
|
setProvider(clientName: string, provider: P): this;
|
|
511
569
|
protected getProviderForClient(name?: string): P;
|
|
512
|
-
protected
|
|
570
|
+
protected buildAndCacheEventEmitterForClient(name?: string): InternalEventEmitter;
|
|
513
571
|
private getUnboundEmitters;
|
|
572
|
+
private getAssociatedEventEmitters;
|
|
514
573
|
private transferListeners;
|
|
515
574
|
close(): Promise<void>;
|
|
516
575
|
private handleShutdownError;
|
|
@@ -674,13 +733,13 @@ declare class OpenFeatureClient implements Client {
|
|
|
674
733
|
private _clientLogger?;
|
|
675
734
|
constructor(providerAccessor: () => Provider, emitterAccessor: () => OpenFeatureEventEmitter, globalLogger: () => Logger, options: OpenFeatureClientOptions);
|
|
676
735
|
get metadata(): ClientMetadata;
|
|
677
|
-
addHandler(eventType:
|
|
678
|
-
removeHandler(notificationType:
|
|
679
|
-
getHandlers(eventType: ProviderEvents): EventHandler[];
|
|
680
|
-
setLogger(logger: Logger):
|
|
681
|
-
addHooks(...hooks: Hook<FlagValue>[]):
|
|
736
|
+
addHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
737
|
+
removeHandler<T extends ProviderEvents>(notificationType: T, handler: EventHandler<T>): void;
|
|
738
|
+
getHandlers(eventType: ProviderEvents): EventHandler<ProviderEvents>[];
|
|
739
|
+
setLogger(logger: Logger): this;
|
|
740
|
+
addHooks(...hooks: Hook<FlagValue>[]): this;
|
|
682
741
|
getHooks(): Hook<FlagValue>[];
|
|
683
|
-
clearHooks():
|
|
742
|
+
clearHooks(): this;
|
|
684
743
|
getBooleanValue(flagKey: string, defaultValue: boolean, options?: FlagEvaluationOptions): boolean;
|
|
685
744
|
getBooleanDetails(flagKey: string, defaultValue: boolean, options?: FlagEvaluationOptions): EvaluationDetails<boolean>;
|
|
686
745
|
getStringValue<T extends string = string>(flagKey: string, defaultValue: T, options?: FlagEvaluationOptions): T;
|
|
@@ -728,4 +787,4 @@ declare class OpenFeatureAPI extends OpenFeatureCommonAPI<Provider> implements M
|
|
|
728
787
|
*/
|
|
729
788
|
declare const OpenFeature: OpenFeatureAPI;
|
|
730
789
|
|
|
731
|
-
export { BeforeHookContext, Client, ClientMetadata, CommonProvider, DefaultLogger, ErrorCode, EvaluationContext, EvaluationContextValue, EvaluationDetails, EvaluationLifeCycle, EventDetails, EventHandler, EventMetadata, Eventing, Features, FlagEvaluationOptions, FlagMetadata, FlagNotFoundError, FlagValue, FlagValueType, GeneralError, Hook, HookContext, HookHints, InvalidContextError, JsonArray, JsonObject, JsonValue, LOG_LEVELS, Logger, ManageContext, ManageLogger, ManageTransactionContextPropagator, Metadata, NOOP_PROVIDER, NOOP_TRANSACTION_CONTEXT_PROPAGATOR, OpenFeature, OpenFeatureAPI, OpenFeatureClient, OpenFeatureCommonAPI, OpenFeatureError, OpenFeatureEventEmitter, ParseError, PrimitiveValue, Provider, ProviderEvents, ProviderMetadata, ProviderStatus, ResolutionDetails, ResolutionReason, SafeLogger, StandardResolutionReasons, TargetingKeyMissingError, TransactionContext, TransactionContextPropagator, TypeMismatchError, isObject, isString, objectOrUndefined, stringOrUndefined };
|
|
790
|
+
export { BeforeHookContext, Client, ClientMetadata, CommonEventDetails, CommonProvider, ConfigChangeEvent, DefaultLogger, ErrorCode, ErrorEvent, EvaluationContext, EvaluationContextValue, EvaluationDetails, EvaluationLifeCycle, EventContext, EventDetails, EventHandler, EventMetadata, Eventing, Features, FlagEvaluationOptions, FlagMetadata, FlagNotFoundError, FlagValue, FlagValueType, GeneralError, Hook, HookContext, HookHints, InternalEventEmitter, InvalidContextError, JsonArray, JsonObject, JsonValue, LOG_LEVELS, Logger, ManageContext, ManageLogger, ManageTransactionContextPropagator, Metadata, NOOP_PROVIDER, NOOP_TRANSACTION_CONTEXT_PROPAGATOR, OpenFeature, OpenFeatureAPI, OpenFeatureClient, OpenFeatureCommonAPI, OpenFeatureError, OpenFeatureEventEmitter, ParseError, PrimitiveValue, Provider, ProviderEvents, ProviderMetadata, ProviderStatus, ReadyEvent, ResolutionDetails, ResolutionReason, SafeLogger, StaleEvent, StandardResolutionReasons, TargetingKeyMissingError, TransactionContext, TransactionContextPropagator, TypeMismatchError, isObject, isString, objectOrUndefined, stringOrUndefined };
|