@roadiehq/backstage-plugin-argo-cd
Version:
24 lines (22 loc) • 1.35 kB
JavaScript
const ARGOCD_ANNOTATION_APP_NAME = "argocd/app-name";
const ARGOCD_ANNOTATION_APP_SELECTOR = "argocd/app-selector";
const ARGOCD_ANNOTATION_APP_NAMESPACE = "argocd/app-namespace";
const ARGOCD_ANNOTATION_PROJECT_NAME = "argocd/project-name";
const ARGOCD_ANNOTATION_PROXY_URL = "argocd/proxy-url";
const useArgoCDAppData = ({ entity }) => {
const appName = entity?.metadata.annotations?.[ARGOCD_ANNOTATION_APP_NAME] ?? "";
const appSelector = entity?.metadata.annotations?.[ARGOCD_ANNOTATION_APP_SELECTOR] ?? "";
const appNamespace = entity?.metadata.annotations?.[ARGOCD_ANNOTATION_APP_NAMESPACE];
const projectName = entity?.metadata.annotations?.[ARGOCD_ANNOTATION_PROJECT_NAME];
const url = entity?.metadata.annotations?.[ARGOCD_ANNOTATION_PROXY_URL] ?? "/argocd/api";
if (!(appName || appSelector || projectName)) {
throw new Error("'argocd' annotation is missing");
} else if (appName && (appSelector || projectName)) {
throw new Error(
"Cannot provide both 'argocd/app-name' and 'argocd-app' annotations"
);
}
return { url, appName, appSelector, appNamespace, projectName };
};
export { ARGOCD_ANNOTATION_APP_NAME, ARGOCD_ANNOTATION_APP_NAMESPACE, ARGOCD_ANNOTATION_APP_SELECTOR, ARGOCD_ANNOTATION_PROJECT_NAME, ARGOCD_ANNOTATION_PROXY_URL, useArgoCDAppData };
//# sourceMappingURL=useArgoCDAppData.esm.js.map