@kaspersky/dev-tools
Version:
Development tools and configs for Babel, ESLint and TypeScript
38 lines (36 loc) • 1.1 kB
JavaScript
const fs = require('fs')
module.exports = function initFeatureRegistry (featureFlagConfigMapPath = '') {
const isFeatureEnabled = featureName => {
try {
const flagName = `FEATURE_${featureName}`
const featureFlags = JSON.parse(
fs.readFileSync(featureFlagConfigMapPath)
)
const isEnabled = Boolean(parseInt(featureFlags[flagName]))
runtime.logger.log('featureRegistry::check::result', {
featureName,
flagName,
isEnabled
})
return isEnabled
} catch (error) {
runtime.logger.error('featureRegistry::check::error', {
error
})
return false
}
}
return {
isPluginServerFeatureEnabled: ({ featureName }) => {
return isFeatureEnabled(featureName)
},
isPluginUserFeatureEnabled: ({ featureName }, connection) => {
const {
kscUserId: userId = '-',
hostedInstanceId: securityCenterId = '-',
wsId: workspaceId = '-'
} = connection
return isFeatureEnabled(`USER_${securityCenterId}_${workspaceId}_${userId}_${featureName}`)
}
}
}