unleash-server
Version:
Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.
53 lines • 1.53 kB
JavaScript
export function createFallbackFunction(name, context, fallback) {
const createEvalResult = (enabled) => ({
result: enabled,
strategies: [],
});
if (typeof fallback === 'function') {
return () => createEvalResult(fallback(name, context));
}
if (typeof fallback === 'boolean') {
return () => createEvalResult(fallback);
}
return () => createEvalResult(false);
}
export function resolveContextValue(context, field) {
if (context[field]) {
return context[field];
}
if (context.properties?.[field]) {
return context.properties[field];
}
return undefined;
}
export function safeName(str = '') {
return str.replace(/\//g, '_');
}
export function getDefaultStrategy(featureName) {
return {
name: 'flexibleRollout',
constraints: [],
disabled: false,
parameters: {
rollout: '100',
stickiness: 'default',
groupId: featureName,
},
};
}
function resolveGroupId(defaultStrategy, featureName) {
const groupId = defaultStrategy?.parameters?.groupId !== ''
? defaultStrategy.parameters?.groupId
: featureName;
return groupId || '';
}
export function getProjectDefaultStrategy(defaultStrategy, featureName) {
return {
...defaultStrategy,
parameters: {
...defaultStrategy.parameters,
groupId: resolveGroupId(defaultStrategy, featureName),
},
};
}
//# sourceMappingURL=helpers.js.map