@openfeature/web-sdk 0.4.13 → 0.4.14
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/README.md +2 -5
- package/dist/cjs/index.js +72 -48
- package/dist/cjs/index.js.map +4 -4
- package/dist/esm/index.js +76 -51
- package/dist/esm/index.js.map +4 -4
- package/dist/types.d.ts +70 -45
- package/package.json +3 -3
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as _openfeature_core from '@openfeature/core';
|
|
2
|
+
import { BaseHook, HookHints, EvaluationDetails, JsonValue, FlagValue, CommonProvider, ClientProviderStatus, EvaluationContext, Logger, ResolutionDetails, ClientProviderEvents, GenericEventEmitter, EvaluationLifeCycle, ManageLogger, Eventing, ClientMetadata, CommonEventDetails, EventHandler, OpenFeatureCommonAPI, ManageContext, ProviderWrapper } from '@openfeature/core';
|
|
2
3
|
export * from '@openfeature/core';
|
|
3
|
-
export { ClientProviderEvents as ProviderEvents } from '@openfeature/core';
|
|
4
|
-
import EventEmitter from 'events';
|
|
4
|
+
export { ClientProviderEvents as ProviderEvents, ClientProviderStatus as ProviderStatus } from '@openfeature/core';
|
|
5
5
|
|
|
6
6
|
interface FlagEvaluationOptions {
|
|
7
7
|
hooks?: BaseHook[];
|
|
@@ -86,39 +86,6 @@ interface Features {
|
|
|
86
86
|
getObjectDetails<T extends JsonValue = JsonValue>(flagKey: string, defaultValue: T, options?: FlagEvaluationOptions): EvaluationDetails<T>;
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
interface Client extends EvaluationLifeCycle<Client>, Features, ManageLogger<Client>, Eventing {
|
|
90
|
-
readonly metadata: ClientMetadata;
|
|
91
|
-
/**
|
|
92
|
-
* Returns the status of the associated provider.
|
|
93
|
-
*/
|
|
94
|
-
readonly providerStatus: ProviderStatus;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* A subset of events that can be directly emitted by providers.
|
|
99
|
-
*/
|
|
100
|
-
type ProviderEmittableEvents = Exclude<ClientProviderEvents, ClientProviderEvents.ContextChanged>;
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* The OpenFeatureEventEmitter can be used by provider developers to emit
|
|
104
|
-
* events at various parts of the provider lifecycle.
|
|
105
|
-
*
|
|
106
|
-
* NOTE: Ready and error events are automatically emitted by the SDK based on
|
|
107
|
-
* the result of the initialize method.
|
|
108
|
-
*/
|
|
109
|
-
declare class OpenFeatureEventEmitter extends GenericEventEmitter<ProviderEmittableEvents> {
|
|
110
|
-
protected readonly eventEmitter: EventEmitter;
|
|
111
|
-
constructor();
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
/**
|
|
115
|
-
* The InternalEventEmitter is not exported publicly and should only be used within the SDK. It extends the
|
|
116
|
-
* OpenFeatureEventEmitter to include additional properties that can be included
|
|
117
|
-
* in the event details.
|
|
118
|
-
*/
|
|
119
|
-
declare abstract class InternalEventEmitter extends GenericEventEmitter<ClientProviderEvents, CommonEventDetails> {
|
|
120
|
-
}
|
|
121
|
-
|
|
122
89
|
type Hook = BaseHook<FlagValue, void, void>;
|
|
123
90
|
|
|
124
91
|
/**
|
|
@@ -127,7 +94,7 @@ type Hook = BaseHook<FlagValue, void, void>;
|
|
|
127
94
|
*
|
|
128
95
|
* Implementation for resolving all the required flag types must be defined.
|
|
129
96
|
*/
|
|
130
|
-
interface Provider extends CommonProvider {
|
|
97
|
+
interface Provider extends CommonProvider<ClientProviderStatus> {
|
|
131
98
|
/**
|
|
132
99
|
* A provider hook exposes a mechanism for provider authors to register hooks
|
|
133
100
|
* to tap into various stages of the flag evaluation lifecycle. These hooks can
|
|
@@ -167,7 +134,6 @@ declare class NoopFeatureProvider implements Provider {
|
|
|
167
134
|
readonly metadata: {
|
|
168
135
|
readonly name: "No-op Provider";
|
|
169
136
|
};
|
|
170
|
-
get status(): ProviderStatus;
|
|
171
137
|
resolveBooleanEvaluation(_: string, defaultValue: boolean): ResolutionDetails<boolean>;
|
|
172
138
|
resolveStringEvaluation(_: string, defaultValue: string): ResolutionDetails<string>;
|
|
173
139
|
resolveNumberEvaluation(_: string, defaultValue: number): ResolutionDetails<number>;
|
|
@@ -176,6 +142,46 @@ declare class NoopFeatureProvider implements Provider {
|
|
|
176
142
|
}
|
|
177
143
|
declare const NOOP_PROVIDER: NoopFeatureProvider;
|
|
178
144
|
|
|
145
|
+
type Listener = (...args: any[]) => void;
|
|
146
|
+
|
|
147
|
+
declare class EventEmitter {
|
|
148
|
+
static listenerCount(emitter: EventEmitter, type: string | number): number;
|
|
149
|
+
static defaultMaxListeners: number;
|
|
150
|
+
|
|
151
|
+
eventNames(): Array<string | number>;
|
|
152
|
+
setMaxListeners(n: number): this;
|
|
153
|
+
getMaxListeners(): number;
|
|
154
|
+
emit(type: string | number, ...args: any[]): boolean;
|
|
155
|
+
addListener(type: string | number, listener: Listener): this;
|
|
156
|
+
on(type: string | number, listener: Listener): this;
|
|
157
|
+
once(type: string | number, listener: Listener): this;
|
|
158
|
+
prependListener(type: string | number, listener: Listener): this;
|
|
159
|
+
prependOnceListener(type: string | number, listener: Listener): this;
|
|
160
|
+
removeListener(type: string | number, listener: Listener): this;
|
|
161
|
+
off(type: string | number, listener: Listener): this;
|
|
162
|
+
removeAllListeners(type?: string | number): this;
|
|
163
|
+
listeners(type: string | number): Listener[];
|
|
164
|
+
listenerCount(type: string | number): number;
|
|
165
|
+
rawListeners(type: string | number): Listener[];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* A subset of events that can be directly emitted by providers.
|
|
170
|
+
*/
|
|
171
|
+
type ProviderEmittableEvents = Exclude<ClientProviderEvents, ClientProviderEvents.ContextChanged>;
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* The OpenFeatureEventEmitter can be used by provider developers to emit
|
|
175
|
+
* events at various parts of the provider lifecycle.
|
|
176
|
+
*
|
|
177
|
+
* NOTE: Ready and error events are automatically emitted by the SDK based on
|
|
178
|
+
* the result of the initialize method.
|
|
179
|
+
*/
|
|
180
|
+
declare class OpenFeatureEventEmitter extends GenericEventEmitter<ProviderEmittableEvents> {
|
|
181
|
+
protected readonly eventEmitter: EventEmitter;
|
|
182
|
+
constructor();
|
|
183
|
+
}
|
|
184
|
+
|
|
179
185
|
/**
|
|
180
186
|
* Don't export types from this file publicly.
|
|
181
187
|
* It might cause confusion since these types are not a part of the general API,
|
|
@@ -216,7 +222,6 @@ type FlagConfiguration = Record<string, Flag>;
|
|
|
216
222
|
declare class InMemoryProvider implements Provider {
|
|
217
223
|
readonly events: OpenFeatureEventEmitter;
|
|
218
224
|
readonly runsOn = "client";
|
|
219
|
-
status: ProviderStatus;
|
|
220
225
|
readonly metadata: {
|
|
221
226
|
readonly name: "in-memory";
|
|
222
227
|
};
|
|
@@ -238,6 +243,22 @@ declare class InMemoryProvider implements Provider {
|
|
|
238
243
|
private lookupFlagValue;
|
|
239
244
|
}
|
|
240
245
|
|
|
246
|
+
interface Client extends EvaluationLifeCycle<Client>, Features, ManageLogger<Client>, Eventing<ClientProviderEvents> {
|
|
247
|
+
readonly metadata: ClientMetadata;
|
|
248
|
+
/**
|
|
249
|
+
* Returns the status of the associated provider.
|
|
250
|
+
*/
|
|
251
|
+
readonly providerStatus: ClientProviderStatus;
|
|
252
|
+
}
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* The InternalEventEmitter is not exported publicly and should only be used within the SDK. It extends the
|
|
256
|
+
* OpenFeatureEventEmitter to include additional properties that can be included
|
|
257
|
+
* in the event details.
|
|
258
|
+
*/
|
|
259
|
+
declare abstract class InternalEventEmitter extends GenericEventEmitter<ClientProviderEvents, CommonEventDetails> {
|
|
260
|
+
}
|
|
261
|
+
|
|
241
262
|
type OpenFeatureClientOptions = {
|
|
242
263
|
/**
|
|
243
264
|
* @deprecated Use `domain` instead.
|
|
@@ -248,17 +269,18 @@ type OpenFeatureClientOptions = {
|
|
|
248
269
|
};
|
|
249
270
|
declare class OpenFeatureClient implements Client {
|
|
250
271
|
private readonly providerAccessor;
|
|
272
|
+
private readonly providerStatusAccessor;
|
|
251
273
|
private readonly emitterAccessor;
|
|
252
274
|
private readonly globalLogger;
|
|
253
275
|
private readonly options;
|
|
254
276
|
private _hooks;
|
|
255
277
|
private _clientLogger?;
|
|
256
|
-
constructor(providerAccessor: () => Provider, emitterAccessor: () => InternalEventEmitter, globalLogger: () => Logger, options: OpenFeatureClientOptions);
|
|
278
|
+
constructor(providerAccessor: () => Provider, providerStatusAccessor: () => ClientProviderStatus, emitterAccessor: () => InternalEventEmitter, globalLogger: () => Logger, options: OpenFeatureClientOptions);
|
|
257
279
|
get metadata(): ClientMetadata;
|
|
258
|
-
get providerStatus():
|
|
280
|
+
get providerStatus(): ClientProviderStatus;
|
|
259
281
|
addHandler(eventType: ClientProviderEvents, handler: EventHandler): void;
|
|
260
282
|
removeHandler(notificationType: ClientProviderEvents, handler: EventHandler): void;
|
|
261
|
-
getHandlers(eventType: ClientProviderEvents): EventHandler[];
|
|
283
|
+
getHandlers(eventType: ClientProviderEvents): EventHandler<ClientProviderEvents | _openfeature_core.ServerProviderEvents>[];
|
|
262
284
|
setLogger(logger: Logger): this;
|
|
263
285
|
addHooks(...hooks: Hook[]): this;
|
|
264
286
|
getHooks(): Hook[];
|
|
@@ -280,9 +302,11 @@ declare class OpenFeatureClient implements Client {
|
|
|
280
302
|
private get _logger();
|
|
281
303
|
}
|
|
282
304
|
|
|
283
|
-
declare class OpenFeatureAPI extends OpenFeatureCommonAPI<Provider, Hook> implements ManageContext<Promise<void>> {
|
|
284
|
-
protected
|
|
285
|
-
protected
|
|
305
|
+
declare class OpenFeatureAPI extends OpenFeatureCommonAPI<ClientProviderStatus, Provider, Hook> implements ManageContext<Promise<void>> {
|
|
306
|
+
protected _statusEnumType: typeof ClientProviderStatus;
|
|
307
|
+
protected _apiEmitter: GenericEventEmitter<ClientProviderEvents>;
|
|
308
|
+
protected _defaultProvider: ProviderWrapper<Provider, ClientProviderStatus>;
|
|
309
|
+
protected _domainScopedProviders: Map<string, ProviderWrapper<Provider, ClientProviderStatus>>;
|
|
286
310
|
protected _createEventEmitter: () => OpenFeatureEventEmitter;
|
|
287
311
|
private constructor();
|
|
288
312
|
/**
|
|
@@ -291,6 +315,7 @@ declare class OpenFeatureAPI extends OpenFeatureCommonAPI<Provider, Hook> implem
|
|
|
291
315
|
* @returns {OpenFeatureAPI} OpenFeature API
|
|
292
316
|
*/
|
|
293
317
|
static getInstance(): OpenFeatureAPI;
|
|
318
|
+
private getProviderStatus;
|
|
294
319
|
/**
|
|
295
320
|
* Sets the evaluation context globally.
|
|
296
321
|
* This will be used by all providers that have not bound to a domain.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openfeature/web-sdk",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.14",
|
|
4
4
|
"description": "OpenFeature SDK for Web",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"files": [
|
|
@@ -46,9 +46,9 @@
|
|
|
46
46
|
},
|
|
47
47
|
"homepage": "https://github.com/open-feature/js-sdk#readme",
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@openfeature/core": "0.0.
|
|
49
|
+
"@openfeature/core": "0.0.27"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
|
-
"@openfeature/core": "0.0.
|
|
52
|
+
"@openfeature/core": "0.0.27"
|
|
53
53
|
}
|
|
54
54
|
}
|