@launchdarkly/node-server-sdk
Version:
LaunchDarkly Server-Side SDK for Node.js
53 lines • 2.26 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
// eslint-disable-next-line max-classes-per-file
const events_1 = require("events");
const util_1 = require("util");
const js_server_sdk_common_1 = require("@launchdarkly/js-server-sdk-common");
const BigSegmentsStoreStatusProviderNode_1 = require("./BigSegmentsStoreStatusProviderNode");
const Emits_1 = require("./Emits");
const NodePlatform_1 = require("./platform/NodePlatform");
class ClientEmitter extends events_1.EventEmitter {
}
/**
* @ignore
*/
class LDClientNode extends js_server_sdk_common_1.LDClientImpl {
constructor(sdkKey, options) {
const fallbackLogger = new js_server_sdk_common_1.BasicLogger({
level: 'info',
// eslint-disable-next-line no-console
destination: console.error,
formatter: util_1.format,
});
const emitter = new ClientEmitter();
const logger = options.logger ? new js_server_sdk_common_1.SafeLogger(options.logger, fallbackLogger) : fallbackLogger;
super(sdkKey, new NodePlatform_1.default(Object.assign(Object.assign({}, options), { logger })), Object.assign(Object.assign({}, options), { logger }), {
onError: (err) => {
if (emitter.listenerCount('error')) {
emitter.emit('error', err);
}
else {
logger.error(err.message);
}
},
onFailed: (err) => {
emitter.emit('failed', err);
},
onReady: () => {
emitter.emit('ready');
},
onUpdate: (key) => {
emitter.emit('update', { key });
emitter.emit(`update:${key}`, { key });
},
hasEventListeners: () => emitter
.eventNames()
.some((name) => name === 'update' || (typeof name === 'string' && name.startsWith('update:'))),
});
this.emitter = emitter;
this.bigSegmentStoreStatusProvider = new BigSegmentsStoreStatusProviderNode_1.default(this.bigSegmentStatusProviderInternal);
}
}
exports.default = (0, Emits_1.Emits)(LDClientNode);
//# sourceMappingURL=LDClientNode.js.map