UNPKG

@catladder/cli

Version:

Panter cli tool for cloud CI/CD and DevOps

25 lines 1.39 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resolveAllReferences = void 0; const VariableValueContainingReferences_1 = require("./VariableValueContainingReferences"); const resolveAllReferencesOnce_1 = require("./resolveAllReferencesOnce"); const resolveAllReferences = async (values, getEnvVars) => { // replace until there aren't any references left let result = values; let i = 0; while (Object.values(result).some((value) => value.parts.some((part) => part instanceof VariableValueContainingReferences_1.VariableReference))) { const replaced = await (0, resolveAllReferencesOnce_1.resolveAllReferencesOnce)(result, getEnvVars); result = replaced; i++; if (i > 1000) { const unresolved = Object.entries(result).filter(([key, value]) => value.parts.some((part) => part instanceof VariableValueContainingReferences_1.VariableReference)); throw new Error("Infinite loop detected in these variables: " + unresolved .map(([key, value]) => `${key} (last reference: ${value.parts.find((part) => part instanceof VariableValueContainingReferences_1.VariableReference)})`) .join(", ")); } } return result; }; exports.resolveAllReferences = resolveAllReferences; //# sourceMappingURL=resolveAllReferences.js.map