UNPKG

@spartacus/core

Version:

Spartacus - the core framework

39 lines 5.79 kB
function isFeatureConfig(config) { return typeof config === 'object' && !!config.features; } function isInLevel(level, version) { if (level === '*') { return true; } const levelParts = level.split('.'); const versionParts = version.split('.'); for (let i = 0; i < versionParts.length; i++) { const versionNumberPart = Number(versionParts[i]); const levelNumberPart = Number(levelParts[i]) || 0; if (versionNumberPart !== levelNumberPart) { return levelNumberPart > versionNumberPart; } } return true; } export function isFeatureLevel(config, level) { if (isFeatureConfig(config) && config.features.level) { return level.startsWith('!') ? !isInLevel(config.features.level, level.substr(1, level.length)) : isInLevel(config.features.level, level); } return false; } export function isFeatureEnabled(config, feature) { if (isFeatureConfig(config)) { const featureConfig = feature[0] === '!' ? config.features[feature.substr(1, feature.length)] : config.features[feature]; const result = typeof featureConfig === 'string' ? isFeatureLevel(config, featureConfig) : featureConfig; return feature.startsWith('!') ? !result : !!result; } return false; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWctdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3NyYy9mZWF0dXJlcy1jb25maWcvdXRpbHMvZmVhdHVyZS1jb25maWctdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsU0FBUyxlQUFlLENBQUMsTUFBYztJQUNyQyxPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztBQUN6RCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsS0FBYSxFQUFFLE9BQWU7SUFDL0MsSUFBSSxLQUFLLEtBQUssR0FBRyxFQUFFO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFDRCxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDNUMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuRCxJQUFJLGlCQUFpQixLQUFLLGVBQWUsRUFBRTtZQUN6QyxPQUFPLGVBQWUsR0FBRyxpQkFBaUIsQ0FBQztTQUM1QztLQUNGO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUFjLEVBQUUsS0FBYTtJQUMxRCxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRTtRQUNwRCxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1lBQzFCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDbEUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztLQUM3QztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxNQUFjLEVBQUUsT0FBZTtJQUM5RCxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMzQixNQUFNLGFBQWEsR0FDakIsT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUc7WUFDaEIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BELENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRS9CLE1BQU0sTUFBTSxHQUNWLE9BQU8sYUFBYSxLQUFLLFFBQVE7WUFDL0IsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsYUFBYSxDQUFDO1lBQ3ZDLENBQUMsQ0FBQyxhQUFhLENBQUM7UUFFcEIsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztLQUNyRDtJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9jb25maWctdG9rZW5zJztcbmltcG9ydCB7IEZlYXR1cmVzQ29uZmlnIH0gZnJvbSAnLi4vY29uZmlnL2ZlYXR1cmVzLWNvbmZpZyc7XG5cbmZ1bmN0aW9uIGlzRmVhdHVyZUNvbmZpZyhjb25maWc6IENvbmZpZyk6IGNvbmZpZyBpcyBSZXF1aXJlZDxGZWF0dXJlc0NvbmZpZz4ge1xuICByZXR1cm4gdHlwZW9mIGNvbmZpZyA9PT0gJ29iamVjdCcgJiYgISFjb25maWcuZmVhdHVyZXM7XG59XG5cbmZ1bmN0aW9uIGlzSW5MZXZlbChsZXZlbDogc3RyaW5nLCB2ZXJzaW9uOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGxldmVsID09PSAnKicpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBjb25zdCBsZXZlbFBhcnRzID0gbGV2ZWwuc3BsaXQoJy4nKTtcbiAgY29uc3QgdmVyc2lvblBhcnRzID0gdmVyc2lvbi5zcGxpdCgnLicpO1xuXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgdmVyc2lvblBhcnRzLmxlbmd0aDsgaSsrKSB7XG4gICAgY29uc3QgdmVyc2lvbk51bWJlclBhcnQgPSBOdW1iZXIodmVyc2lvblBhcnRzW2ldKTtcbiAgICBjb25zdCBsZXZlbE51bWJlclBhcnQgPSBOdW1iZXIobGV2ZWxQYXJ0c1tpXSkgfHwgMDtcblxuICAgIGlmICh2ZXJzaW9uTnVtYmVyUGFydCAhPT0gbGV2ZWxOdW1iZXJQYXJ0KSB7XG4gICAgICByZXR1cm4gbGV2ZWxOdW1iZXJQYXJ0ID4gdmVyc2lvbk51bWJlclBhcnQ7XG4gICAgfVxuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGZWF0dXJlTGV2ZWwoY29uZmlnOiBDb25maWcsIGxldmVsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgaWYgKGlzRmVhdHVyZUNvbmZpZyhjb25maWcpICYmIGNvbmZpZy5mZWF0dXJlcy5sZXZlbCkge1xuICAgIHJldHVybiBsZXZlbC5zdGFydHNXaXRoKCchJylcbiAgICAgID8gIWlzSW5MZXZlbChjb25maWcuZmVhdHVyZXMubGV2ZWwsIGxldmVsLnN1YnN0cigxLCBsZXZlbC5sZW5ndGgpKVxuICAgICAgOiBpc0luTGV2ZWwoY29uZmlnLmZlYXR1cmVzLmxldmVsLCBsZXZlbCk7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGZWF0dXJlRW5hYmxlZChjb25maWc6IENvbmZpZywgZmVhdHVyZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGlmIChpc0ZlYXR1cmVDb25maWcoY29uZmlnKSkge1xuICAgIGNvbnN0IGZlYXR1cmVDb25maWcgPVxuICAgICAgZmVhdHVyZVswXSA9PT0gJyEnXG4gICAgICAgID8gY29uZmlnLmZlYXR1cmVzW2ZlYXR1cmUuc3Vic3RyKDEsIGZlYXR1cmUubGVuZ3RoKV1cbiAgICAgICAgOiBjb25maWcuZmVhdHVyZXNbZmVhdHVyZV07XG5cbiAgICBjb25zdCByZXN1bHQgPVxuICAgICAgdHlwZW9mIGZlYXR1cmVDb25maWcgPT09ICdzdHJpbmcnXG4gICAgICAgID8gaXNGZWF0dXJlTGV2ZWwoY29uZmlnLCBmZWF0dXJlQ29uZmlnKVxuICAgICAgICA6IGZlYXR1cmVDb25maWc7XG5cbiAgICByZXR1cm4gZmVhdHVyZS5zdGFydHNXaXRoKCchJykgPyAhcmVzdWx0IDogISFyZXN1bHQ7XG4gIH1cbiAgcmV0dXJuIGZhbHNlO1xufVxuIl19