@apistudio/apim-cli
Version:
CLI for API Management Products
45 lines (44 loc) • 1.52 kB
JavaScript
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 };