UNPKG

unleash-server

Version:

Unleash is an enterprise ready feature flag service. It provides different strategies for handling feature flags.

47 lines 1.99 kB
const buildStrategyLink = (project, feature, environment, strategyId) => `/projects/${project}/features/${feature}/strategies/edit?environmentId=${environment}&strategyId=${strategyId}`; const addStrategyEditLink = (environmentId, projectId, featureName, strategy) => { return { ...strategy, links: { edit: buildStrategyLink(projectId, featureName, environmentId, strategy.id), }, }; }; export const advancedPlaygroundViewModel = (input, playgroundResult, invalidContextProperties) => { const features = playgroundResult.map(({ environments, ...rest }) => { const transformedEnvironments = Object.entries(environments).map(([envName, envFeatures]) => { const transformedFeatures = envFeatures.map(({ name, strategies, environment, projectId, ...featRest }) => ({ ...featRest, name, environment, projectId, strategies: { ...strategies, data: strategies.data.map((strategy) => addStrategyEditLink(environment, projectId, name, strategy)), }, })); return [envName, transformedFeatures]; }); return { ...rest, environments: Object.fromEntries(transformedEnvironments), }; }); if (invalidContextProperties?.length) { return { features, input, warnings: { invalidContextProperties } }; } return { features, input }; }; export const playgroundViewModel = (input, playgroundResult) => { const features = playgroundResult.map(({ name, strategies, projectId, ...rest }) => ({ ...rest, name, projectId, strategies: { ...strategies, data: strategies.data.map((strategy) => addStrategyEditLink(input.environment, projectId, name, strategy)), }, })); return { input, features }; }; //# sourceMappingURL=playground-view-model.js.map