@gooddata/js-utils
Advanced tools
Comparing version 3.10.15 to 3.10.16-alpha-ptquang86-qp-sd-1338-naming-2021-01-19T06-23-56-597Z
@@ -1,16 +0,6 @@ | ||
import { IBootstrapData } from './userUtils'; | ||
export interface IFeatureFlags { | ||
[key: string]: number | boolean | string; | ||
} | ||
interface INormalizedFeatureFlagContent { | ||
value: number | boolean | string; | ||
source: string; | ||
} | ||
interface INormalizedFeatureFlags { | ||
[property: string]: INormalizedFeatureFlagContent; | ||
} | ||
export declare function shouldHidePPExperience(featureFlags: IFeatureFlags): boolean; | ||
export declare function isFreemiumEdition(platformEdition: string): boolean; | ||
export declare function shouldEnableNewNavigation(featureFlags: IFeatureFlags): boolean; | ||
export declare function updatePrivateFFForPPInBootstrap(bootstrapData: IBootstrapData, featureFlags: INormalizedFeatureFlags): IBootstrapData; | ||
export {}; |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
// (C) 2020-2021 GoodData Corporation | ||
var set_1 = __importDefault(require("lodash/set")); | ||
var cloneDeep = require("lodash/cloneDeep"); | ||
var FREE = 'free'; | ||
var GROWTH = 'growth'; | ||
var PLATFORM_EDITION = 'platformEdition'; | ||
var ENABLE_PP_EXPERIENCE = 'enablePixelPerfectExperience'; | ||
var PORTAL_LOGO_PAGE = 'portalLogoPage'; | ||
var CURRENT_FEATURE_FLAGS_PATH = 'bootstrapResource.current.featureFlags'; | ||
function shouldHidePPExperience(featureFlags) { | ||
@@ -41,20 +32,2 @@ var hidePPExperience = featureFlags.hidePixelPerfectExperience; | ||
exports.shouldEnableNewNavigation = shouldEnableNewNavigation; | ||
// calling from AD/KD/Load/Users Management Page | ||
function updatePrivateFFForPPInBootstrap(bootstrapData, featureFlags) { | ||
var clonedBootstrapData = cloneDeep(bootstrapData); | ||
var privateFeatureFlags = [ | ||
PLATFORM_EDITION, | ||
ENABLE_PP_EXPERIENCE, | ||
PORTAL_LOGO_PAGE | ||
]; | ||
privateFeatureFlags.forEach(function (name) { | ||
var featureFlag = featureFlags[name]; | ||
var featureFlagValue = featureFlag && featureFlag.value; | ||
if (featureFlagValue) { | ||
set_1.default(clonedBootstrapData, CURRENT_FEATURE_FLAGS_PATH + "." + name, featureFlagValue); | ||
} | ||
}); | ||
return clonedBootstrapData; | ||
} | ||
exports.updatePrivateFFForPPInBootstrap = updatePrivateFFForPPInBootstrap; | ||
//# sourceMappingURL=featureFlags.js.map |
{ | ||
"name": "@gooddata/js-utils", | ||
"version": "3.10.15", | ||
"version": "3.10.16-alpha-ptquang86-qp-sd-1338-naming-2021-01-19T06-23-56-597Z", | ||
"description": "Various utils shared on GoodData frontend", | ||
@@ -5,0 +5,0 @@ "repository": { |
// (C) 2020-2021 GoodData Corporation | ||
import set from 'lodash/set'; | ||
import cloneDeep = require('lodash/cloneDeep'); | ||
import { IBootstrapData } from './userUtils'; | ||
const FREE = 'free'; | ||
const GROWTH = 'growth'; | ||
const PLATFORM_EDITION = 'platformEdition'; | ||
const ENABLE_PP_EXPERIENCE = 'enablePixelPerfectExperience'; | ||
const PORTAL_LOGO_PAGE = 'portalLogoPage'; | ||
const CURRENT_FEATURE_FLAGS_PATH = 'bootstrapResource.current.featureFlags'; | ||
@@ -17,11 +9,2 @@ export interface IFeatureFlags { | ||
interface INormalizedFeatureFlagContent { | ||
value: number | boolean | string; | ||
source: string; | ||
} | ||
interface INormalizedFeatureFlags { | ||
[property: string]: INormalizedFeatureFlagContent; | ||
} | ||
export function shouldHidePPExperience(featureFlags: IFeatureFlags): boolean { | ||
@@ -58,27 +41,1 @@ const hidePPExperience = featureFlags.hidePixelPerfectExperience as boolean; | ||
} | ||
// calling from AD/KD/Load/Users Management Page | ||
export function updatePrivateFFForPPInBootstrap( | ||
bootstrapData: IBootstrapData, | ||
featureFlags: INormalizedFeatureFlags | ||
): IBootstrapData { | ||
const clonedBootstrapData = cloneDeep(bootstrapData); | ||
const privateFeatureFlags = [ | ||
PLATFORM_EDITION, | ||
ENABLE_PP_EXPERIENCE, | ||
PORTAL_LOGO_PAGE | ||
]; | ||
privateFeatureFlags.forEach((name: string): void => { | ||
const featureFlag = featureFlags[name]; | ||
const featureFlagValue = featureFlag && featureFlag.value; | ||
if (featureFlagValue) { | ||
set( | ||
clonedBootstrapData, | ||
`${CURRENT_FEATURE_FLAGS_PATH}.${name}`, | ||
featureFlagValue | ||
); | ||
} | ||
}); | ||
return clonedBootstrapData; | ||
} |
@@ -6,3 +6,2 @@ // (C) 2020-2021 GoodData Corporation | ||
isFreemiumEdition, | ||
updatePrivateFFForPPInBootstrap, | ||
} from '../featureFlags'; | ||
@@ -131,47 +130,2 @@ | ||
}); | ||
describe('updatePrivateFFForPPInBootstrap', () => { | ||
it('should update private feature flags for pixel perfect', () => { | ||
const bootstrapData = { | ||
bootstrapResource: { | ||
current: { | ||
featureFlags: { | ||
platformEdition: 'free', | ||
enablePixelPerfectExperience: false, | ||
portalLogoPage: '/logo', | ||
hidePixelPerfectExperience: false, | ||
} | ||
}, | ||
accountSetting: { | ||
links: { | ||
self: '/gdc/profile/user123', | ||
} | ||
} | ||
} | ||
}; | ||
const normalizedFeatureFlags = { | ||
platformEdition: { | ||
value: 'growth', | ||
source: 'user' | ||
}, | ||
enablePixelPerfectExperience: { | ||
value: true, | ||
source: 'user' | ||
}, | ||
portalLogoPage: { | ||
value: '/logo1', | ||
source: 'user' | ||
} | ||
}; | ||
const bootstapDataResult = updatePrivateFFForPPInBootstrap(bootstrapData, normalizedFeatureFlags); | ||
const { featureFlags } = bootstapDataResult.bootstrapResource.current; | ||
expect(featureFlags).toEqual({ | ||
platformEdition: 'growth', | ||
enablePixelPerfectExperience: true, | ||
portalLogoPage: '/logo1', | ||
hidePixelPerfectExperience: false | ||
}) | ||
}) | ||
}); | ||
}) |
Sorry, the diff of this file is not supported yet
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
103478
2077
2