isEnabled method
Implementation
bool isEnabled(
String toggleName, {
bool defaultValue = false,
Context? localContext,
}) {
final defaultToggle = FeatureToggle(
name: toggleName,
strategies: null,
description: null,
enabled: defaultValue,
strategy: null,
);
final featureToggle = _features?.features?.firstWhere(
(toggle) => toggle.name == toggleName,
orElse: () => defaultToggle,
);
final toggle = featureToggle ?? defaultToggle;
final isEnabled = toggle.enabled ?? defaultValue;
if (!isEnabled) {
return false;
}
final strategies = toggle.strategies ?? [];
if (strategies.isEmpty) {
return isEnabled;
}
for (final strategy in strategies) {
final foundStrategy = _activationStrategies.firstWhere(
(activationStrategy) => activationStrategy.name == strategy.name,
orElse: () => UnknownStrategy(),
);
final parameters = strategy.parameters ?? <String, dynamic>{};
var currentContext = localContext ?? context;
if (foundStrategy.isEnabled(parameters, currentContext)) {
return true;
}
}
return false;
}