You're Invited: Meet the Socket team at BSidesSF and RSAC - April 27 - May 1.RSVP →

@openfeature/web-sdk

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@openfeature/web-sdk - npm Package Compare versions

Comparing version

to
0.3.5-experimental

@@ -730,2 +730,3 @@ "use strict";

this._events = new OpenFeatureEventEmitter(() => this._logger);
this._clientEventHandlers = /* @__PURE__ */ new Map();
this._clientProviders = /* @__PURE__ */ new Map();

@@ -785,3 +786,3 @@ this._clientEvents = /* @__PURE__ */ new Map();

}
const clientEmitter = this.getEventEmitterForClient(clientName);
const clientEmitter = this.getAndCacheEventEmitterForClient(clientName);
if (typeof provider.initialize === "function") {

@@ -819,3 +820,3 @@ (_d = (_c = (_b = provider.initialize) == null ? void 0 : _b.call(provider, this._context)) == null ? void 0 : _c.then(() => {

}
getEventEmitterForClient(name) {
getAndCacheEventEmitterForClient(name) {
const emitter = this._clientEvents.get(name);

@@ -827,2 +828,11 @@ if (emitter) {

this._clientEvents.set(name, newEmitter);
const clientProvider = this.getProviderForClient(name);
Object.values(ProviderEvents).forEach(
(eventType) => {
var _a;
return (_a = clientProvider.events) == null ? void 0 : _a.addHandler(eventType, (details) => __async(this, null, function* () {
newEmitter.emit(eventType, __spreadProps(__spreadValues({}, details), { clientName: name }));
}));
}
);
return newEmitter;

@@ -832,12 +842,20 @@ }

var _a;
(_a = oldProvider.events) == null ? void 0 : _a.removeAllHandlers();
Object.values(ProviderEvents).forEach(
(_a = this._clientEventHandlers.get(clientName)) == null ? void 0 : _a.forEach((eventHandler) => {
var _a2;
return (_a2 = oldProvider.events) == null ? void 0 : _a2.removeHandler(...eventHandler);
});
const newClientHandlers = Object.values(ProviderEvents).map(
(eventType) => {
var _a2;
return (_a2 = newProvider.events) == null ? void 0 : _a2.addHandler(eventType, (details) => __async(this, null, function* () {
const handler = (details) => __async(this, null, function* () {
clientEmitter.emit(eventType, __spreadProps(__spreadValues({}, details), { clientName }));
this._events.emit(eventType, __spreadProps(__spreadValues({}, details), { clientName }));
}));
});
return [eventType, handler];
}
);
this._clientEventHandlers.set(clientName, newClientHandlers);
newClientHandlers.forEach((eventHandler) => {
var _a2;
return (_a2 = newProvider.events) == null ? void 0 : _a2.addHandler(...eventHandler);
});
}

@@ -990,3 +1008,3 @@ close() {

() => this.getProviderForClient(name),
() => this.getEventEmitterForClient(name),
() => this.getAndCacheEventEmitterForClient(name),
() => this._logger,

@@ -1001,5 +1019,5 @@ { name, version }

var OpenFeatureClient = class {
constructor(providerAccessor, events, globalLogger, options) {
constructor(providerAccessor, emitterAccessor, globalLogger, options) {
this.providerAccessor = providerAccessor;
this.events = events;
this.emitterAccessor = emitterAccessor;
this.globalLogger = globalLogger;

@@ -1017,13 +1035,18 @@ this.options = options;

addHandler(eventType, handler) {
this.events().addHandler(eventType, handler);
var _a;
this.emitterAccessor().addHandler(eventType, handler);
const providerReady = !this._provider.status || this._provider.status === "READY" /* READY */;
if (eventType === "PROVIDER_READY" /* Ready */ && providerReady) {
handler({ clientName: this.metadata.name });
try {
handler({ clientName: this.metadata.name });
} catch (err) {
(_a = this._logger) == null ? void 0 : _a.error("Error running event handler:", err);
}
}
}
removeHandler(notificationType, handler) {
this.events().removeHandler(notificationType, handler);
this.emitterAccessor().removeHandler(notificationType, handler);
}
getHandlers(eventType) {
return this.events().getHandlers(eventType);
return this.emitterAccessor().getHandlers(eventType);
}

@@ -1030,0 +1053,0 @@ setLogger(logger) {

@@ -698,2 +698,3 @@ var __create = Object.create;

this._events = new OpenFeatureEventEmitter(() => this._logger);
this._clientEventHandlers = /* @__PURE__ */ new Map();
this._clientProviders = /* @__PURE__ */ new Map();

@@ -753,3 +754,3 @@ this._clientEvents = /* @__PURE__ */ new Map();

}
const clientEmitter = this.getEventEmitterForClient(clientName);
const clientEmitter = this.getAndCacheEventEmitterForClient(clientName);
if (typeof provider.initialize === "function") {

@@ -787,3 +788,3 @@ (_d = (_c = (_b = provider.initialize) == null ? void 0 : _b.call(provider, this._context)) == null ? void 0 : _c.then(() => {

}
getEventEmitterForClient(name) {
getAndCacheEventEmitterForClient(name) {
const emitter = this._clientEvents.get(name);

@@ -795,2 +796,11 @@ if (emitter) {

this._clientEvents.set(name, newEmitter);
const clientProvider = this.getProviderForClient(name);
Object.values(ProviderEvents).forEach(
(eventType) => {
var _a;
return (_a = clientProvider.events) == null ? void 0 : _a.addHandler(eventType, (details) => __async(this, null, function* () {
newEmitter.emit(eventType, __spreadProps(__spreadValues({}, details), { clientName: name }));
}));
}
);
return newEmitter;

@@ -800,12 +810,20 @@ }

var _a;
(_a = oldProvider.events) == null ? void 0 : _a.removeAllHandlers();
Object.values(ProviderEvents).forEach(
(_a = this._clientEventHandlers.get(clientName)) == null ? void 0 : _a.forEach((eventHandler) => {
var _a2;
return (_a2 = oldProvider.events) == null ? void 0 : _a2.removeHandler(...eventHandler);
});
const newClientHandlers = Object.values(ProviderEvents).map(
(eventType) => {
var _a2;
return (_a2 = newProvider.events) == null ? void 0 : _a2.addHandler(eventType, (details) => __async(this, null, function* () {
const handler = (details) => __async(this, null, function* () {
clientEmitter.emit(eventType, __spreadProps(__spreadValues({}, details), { clientName }));
this._events.emit(eventType, __spreadProps(__spreadValues({}, details), { clientName }));
}));
});
return [eventType, handler];
}
);
this._clientEventHandlers.set(clientName, newClientHandlers);
newClientHandlers.forEach((eventHandler) => {
var _a2;
return (_a2 = newProvider.events) == null ? void 0 : _a2.addHandler(...eventHandler);
});
}

@@ -958,3 +976,3 @@ close() {

() => this.getProviderForClient(name),
() => this.getEventEmitterForClient(name),
() => this.getAndCacheEventEmitterForClient(name),
() => this._logger,

@@ -969,5 +987,5 @@ { name, version }

var OpenFeatureClient = class {
constructor(providerAccessor, events, globalLogger, options) {
constructor(providerAccessor, emitterAccessor, globalLogger, options) {
this.providerAccessor = providerAccessor;
this.events = events;
this.emitterAccessor = emitterAccessor;
this.globalLogger = globalLogger;

@@ -985,13 +1003,18 @@ this.options = options;

addHandler(eventType, handler) {
this.events().addHandler(eventType, handler);
var _a;
this.emitterAccessor().addHandler(eventType, handler);
const providerReady = !this._provider.status || this._provider.status === "READY" /* READY */;
if (eventType === "PROVIDER_READY" /* Ready */ && providerReady) {
handler({ clientName: this.metadata.name });
try {
handler({ clientName: this.metadata.name });
} catch (err) {
(_a = this._logger) == null ? void 0 : _a.error("Error running event handler:", err);
}
}
}
removeHandler(notificationType, handler) {
this.events().removeHandler(notificationType, handler);
this.emitterAccessor().removeHandler(notificationType, handler);
}
getHandlers(eventType) {
return this.events().getHandlers(eventType);
return this.emitterAccessor().getHandlers(eventType);
}

@@ -998,0 +1021,0 @@ setLogger(logger) {

@@ -368,2 +368,3 @@ type EventMetadata = {

private readonly _events;
private readonly _clientEventHandlers;
protected _clientProviders: Map<string, P>;

@@ -418,3 +419,3 @@ protected _clientEvents: Map<string | undefined, OpenFeatureEventEmitter>;

protected getProviderForClient(name?: string): P;
protected getEventEmitterForClient(name?: string): OpenFeatureEventEmitter;
protected getAndCacheEventEmitterForClient(name?: string): OpenFeatureEventEmitter;
private transferListeners;

@@ -632,3 +633,3 @@ close(): Promise<void>;

private readonly providerAccessor;
private readonly events;
private readonly emitterAccessor;
private readonly globalLogger;

@@ -638,3 +639,3 @@ private readonly options;

private _clientLogger?;
constructor(providerAccessor: () => Provider, events: () => OpenFeatureEventEmitter, globalLogger: () => Logger, options: OpenFeatureClientOptions);
constructor(providerAccessor: () => Provider, emitterAccessor: () => OpenFeatureEventEmitter, globalLogger: () => Logger, options: OpenFeatureClientOptions);
get metadata(): ClientMetadata;

@@ -641,0 +642,0 @@ addHandler(eventType: ProviderEvents, handler: EventHandler): void;

{
"name": "@openfeature/web-sdk",
"version": "0.3.4-experimental",
"version": "0.3.5-experimental",
"description": "OpenFeature SDK for Web",

@@ -5,0 +5,0 @@ "main": "./dist/cjs/index.js",

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet