@pagerduty/backstage-plugin
Version:
A Backstage plugin that integrates towards PagerDuty
70 lines (67 loc) • 2.37 kB
JavaScript
import { jsx } from 'react/jsx-runtime';
import { compatWrapper } from '@backstage/core-compat-api';
import { EntityCardBlueprint } from '@backstage/plugin-catalog-react/alpha';
import { PAGERDUTY_INTEGRATION_KEY, PAGERDUTY_SERVICE_ID } from '../components/constants.esm.js';
const pagerDutyEntityCard = EntityCardBlueprint.makeWithOverrides({
name: "EntityPagerDutyCard",
config: {
schema: {
readOnly: (z) => z.boolean().optional(),
disableChangeEvents: (z) => z.boolean().optional(),
disableOnCall: (z) => z.boolean().optional()
}
},
factory(originalFactory, { config }) {
return originalFactory({
filter: (entity) => Boolean(
entity.metadata?.annotations?.[PAGERDUTY_INTEGRATION_KEY] || entity.metadata?.annotations?.[PAGERDUTY_SERVICE_ID]
),
async loader() {
const { EntityPagerDutyCard } = await import('../components/EntityPagerDutyCard/index.esm.js');
return compatWrapper(
/* @__PURE__ */ jsx(
EntityPagerDutyCard,
{
readOnly: config.readOnly,
disableChangeEvents: config.disableChangeEvents,
disableOnCall: config.disableOnCall
}
)
);
}
});
}
});
const pagerDutyEntitySmallCard = EntityCardBlueprint.makeWithOverrides({
name: "EntityPagerDutySmallCard",
disabled: true,
config: {
schema: {
readOnly: (z) => z.boolean().optional(),
disableOnCall: (z) => z.boolean().optional(),
disableInsights: (z) => z.boolean().optional()
}
},
factory(originalFactory, { config }) {
return originalFactory({
filter: (entity) => Boolean(
entity.metadata?.annotations?.[PAGERDUTY_INTEGRATION_KEY] || entity.metadata?.annotations?.[PAGERDUTY_SERVICE_ID]
),
async loader() {
const { EntityPagerDutySmallCard } = await import('../components/EntityPagerDutySmallCard/index.esm.js');
return compatWrapper(
/* @__PURE__ */ jsx(
EntityPagerDutySmallCard,
{
readOnly: config.readOnly,
disableOnCall: config.disableOnCall,
disableInsights: config.disableInsights
}
)
);
}
});
}
});
export { pagerDutyEntityCard, pagerDutyEntitySmallCard };
//# sourceMappingURL=entity-cards.esm.js.map