@openfeature/web-sdk 0.3.7-experimental → 0.3.8-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 +55 -23
- 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
|
}
|
|
@@ -460,7 +491,7 @@ declare abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonPro
|
|
|
460
491
|
private readonly _events;
|
|
461
492
|
private readonly _clientEventHandlers;
|
|
462
493
|
protected _clientProviders: Map<string, P>;
|
|
463
|
-
protected _clientEvents: Map<string | undefined,
|
|
494
|
+
protected _clientEvents: Map<string | undefined, InternalEventEmitter>;
|
|
464
495
|
addHooks(...hooks: Hook<FlagValue>[]): this;
|
|
465
496
|
getHooks(): Hook<FlagValue>[];
|
|
466
497
|
clearHooks(): this;
|
|
@@ -477,19 +508,19 @@ declare abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonPro
|
|
|
477
508
|
* @param {ProviderEvents} eventType The provider event type to listen to
|
|
478
509
|
* @param {EventHandler} handler The handler to run on occurrence of the event type
|
|
479
510
|
*/
|
|
480
|
-
addHandler(eventType:
|
|
511
|
+
addHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
481
512
|
/**
|
|
482
513
|
* Removes a handler for the given provider event type.
|
|
483
514
|
* @param {ProviderEvents} eventType The provider event type to remove the listener for
|
|
484
515
|
* @param {EventHandler} handler The handler to remove for the provider event type
|
|
485
516
|
*/
|
|
486
|
-
removeHandler(eventType:
|
|
517
|
+
removeHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
487
518
|
/**
|
|
488
519
|
* Gets the current handlers for the given provider event type.
|
|
489
520
|
* @param {ProviderEvents} eventType The provider event type to get the current handlers for
|
|
490
521
|
* @returns {EventHandler[]} The handlers currently attached to the given provider event type
|
|
491
522
|
*/
|
|
492
|
-
getHandlers(eventType:
|
|
523
|
+
getHandlers<T extends ProviderEvents>(eventType: T): EventHandler<T>[];
|
|
493
524
|
/**
|
|
494
525
|
* Sets the default provider for flag evaluations.
|
|
495
526
|
* This provider will be used by unnamed clients and named clients to which no provider is bound.
|
|
@@ -509,8 +540,9 @@ declare abstract class OpenFeatureCommonAPI<P extends CommonProvider = CommonPro
|
|
|
509
540
|
*/
|
|
510
541
|
setProvider(clientName: string, provider: P): this;
|
|
511
542
|
protected getProviderForClient(name?: string): P;
|
|
512
|
-
protected
|
|
543
|
+
protected buildAndCacheEventEmitterForClient(name?: string): InternalEventEmitter;
|
|
513
544
|
private getUnboundEmitters;
|
|
545
|
+
private getAssociatedEventEmitters;
|
|
514
546
|
private transferListeners;
|
|
515
547
|
close(): Promise<void>;
|
|
516
548
|
private handleShutdownError;
|
|
@@ -674,13 +706,13 @@ declare class OpenFeatureClient implements Client {
|
|
|
674
706
|
private _clientLogger?;
|
|
675
707
|
constructor(providerAccessor: () => Provider, emitterAccessor: () => OpenFeatureEventEmitter, globalLogger: () => Logger, options: OpenFeatureClientOptions);
|
|
676
708
|
get metadata(): ClientMetadata;
|
|
677
|
-
addHandler(eventType:
|
|
678
|
-
removeHandler(notificationType:
|
|
679
|
-
getHandlers(eventType: ProviderEvents): EventHandler[];
|
|
680
|
-
setLogger(logger: Logger):
|
|
681
|
-
addHooks(...hooks: Hook<FlagValue>[]):
|
|
709
|
+
addHandler<T extends ProviderEvents>(eventType: T, handler: EventHandler<T>): void;
|
|
710
|
+
removeHandler<T extends ProviderEvents>(notificationType: T, handler: EventHandler<T>): void;
|
|
711
|
+
getHandlers(eventType: ProviderEvents): EventHandler<ProviderEvents>[];
|
|
712
|
+
setLogger(logger: Logger): this;
|
|
713
|
+
addHooks(...hooks: Hook<FlagValue>[]): this;
|
|
682
714
|
getHooks(): Hook<FlagValue>[];
|
|
683
|
-
clearHooks():
|
|
715
|
+
clearHooks(): this;
|
|
684
716
|
getBooleanValue(flagKey: string, defaultValue: boolean, options?: FlagEvaluationOptions): boolean;
|
|
685
717
|
getBooleanDetails(flagKey: string, defaultValue: boolean, options?: FlagEvaluationOptions): EvaluationDetails<boolean>;
|
|
686
718
|
getStringValue<T extends string = string>(flagKey: string, defaultValue: T, options?: FlagEvaluationOptions): T;
|
|
@@ -728,4 +760,4 @@ declare class OpenFeatureAPI extends OpenFeatureCommonAPI<Provider> implements M
|
|
|
728
760
|
*/
|
|
729
761
|
declare const OpenFeature: OpenFeatureAPI;
|
|
730
762
|
|
|
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 };
|
|
763
|
+
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 };
|