UNPKG

@featurevisor/core

Version:

Core package of Featurevisor for Node.js usage

27 lines 1.18 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkForCircularDependencyInRequired = checkForCircularDependencyInRequired; async function checkForCircularDependencyInRequired(datasource, featureKey, required, chain = []) { if (!required) { return; } const requiredKeys = required.map((r) => (typeof r === "string" ? r : r.key)); if (requiredKeys.length === 0) { return; } for (const requiredKey of requiredKeys) { chain.push(requiredKey); if (chain.indexOf(featureKey) > -1) { throw new Error(`circular dependency found: ${chain.join(" -> ")}`); } const requiredFeatureExists = await datasource.featureExists(featureKey); if (!requiredFeatureExists) { throw new Error(`required feature "${requiredKey}" not found`); } const requiredParsedFeature = await datasource.readFeature(requiredKey); if (requiredParsedFeature.required) { await checkForCircularDependencyInRequired(datasource, featureKey, requiredParsedFeature.required, chain); } } } //# sourceMappingURL=checkCircularDependency.js.map