UNPKG

@apistudio/apim-cli

Version:

CLI for API Management Products

45 lines (44 loc) 1.52 kB
import { KindEnums } from "@apic/api-model/common/StudioEnums.js"; import { checkForNullOrUndefined, isNullOrUndefined, } from "../../common/data-helper.js"; import { showWarning } from "./../../common/message-helper.js"; const addAssetRefValuesForPackageKind = (refObjects, kind, result) => { if (!isNullOrUndefined(refObjects)) { refObjects.forEach((iter) => { if (!isNullOrUndefined(iter.$ref)) { result.push({ kind, ref: iter.$ref, isNewlyAdded: true, }); } }); } }; const getRefsFromPackageAsset = (asset) => { const packageAsset = asset; const spec = packageAsset.spec; const result = []; try { checkForNullOrUndefined(packageAsset, "Asset is null or undefined"); // apis check if (Array.isArray(spec["apis"])) { const apiRefs = spec["apis"].map((api) => ({ $ref: api.$ref || "", })); addAssetRefValuesForPackageKind(apiRefs, KindEnums.API, result); } // plans check if (Array.isArray(spec["plans"])) { const planRefs = spec["plans"].map((plan) => ({ $ref: plan.$ref || "", })); addAssetRefValuesForPackageKind(planRefs, KindEnums.Plan, result); } return result; } catch (error) { showWarning(error.message); return []; } }; export { getRefsFromPackageAsset };