UNPKG

dd-trace

Version:

Datadog APM tracing client for JavaScript

102 lines (91 loc) 2.82 kB
'use strict' const { NOOP_REASON } = require('./constants/constants') /** * No-op implementation of OpenFeature provider that always returns default values. * Used when the OpenFeature provider is not initialized or disabled. * https://openfeature.dev/docs/reference/concepts/provider/ */ class NoopFlaggingProvider { /** * @param {object} [noopTracer] - Optional noop tracer instance */ constructor (noopTracer) { this._tracer = noopTracer this._config = {} this.metadata = { name: 'NoopFlaggingProvider' } this.status = 'NOT_READY' this.runsOn = 'server' } /** * @param {string} flagKey - Flag key * @param {boolean} defaultValue - Default value to return * @param {object} context - Evaluation context * @param {object} logger - Logger instance * @returns {Promise<{value: boolean, reason: string}>} Resolution details */ resolveBooleanEvaluation (flagKey, defaultValue, context, logger) { return Promise.resolve({ value: defaultValue, reason: NOOP_REASON }) } /** * @param {string} flagKey - Flag key * @param {string} defaultValue - Default value to return * @param {object} context - Evaluation context * @param {object} logger - Logger instance * @returns {Promise<{value: string, reason: string}>} Resolution details */ resolveStringEvaluation (flagKey, defaultValue, context, logger) { return Promise.resolve({ value: defaultValue, reason: NOOP_REASON }) } /** * @param {string} flagKey - Flag key * @param {number} defaultValue - Default value to return * @param {object} context - Evaluation context * @param {object} logger - Logger instance * @returns {Promise<{value: number, reason: string}>} Resolution details */ resolveNumberEvaluation (flagKey, defaultValue, context, logger) { return Promise.resolve({ value: defaultValue, reason: NOOP_REASON, }) } /** * @param {string} flagKey - Flag key * @param {object} defaultValue - Default value to return * @param {object} context - Evaluation context * @param {object} logger - Logger instance * @returns {Promise<{value: object, reason: string}>} Resolution details */ resolveObjectEvaluation (flagKey, defaultValue, context, logger) { return Promise.resolve({ value: defaultValue, reason: NOOP_REASON }) } /** * @returns {object} Current configuration */ getConfiguration () { return this._config } /** * @param {object} config - Configuration to set */ setConfiguration (config) { this._config = config } /** * @internal * @param {object} ufc - Universal Flag Configuration object */ _setConfiguration (ufc) { this.setConfiguration(ufc) } } module.exports = NoopFlaggingProvider