in packages/cdk-graph-plugin-diagram/src/internal/utils/resource-images.ts [54:123]
function _resolveResourceLikeImage(
node: Graph.ResourceNode | Graph.CfnResourceNode,
min: GraphThemeRenderingIconTarget,
max: GraphThemeRenderingIconTarget,
theme?: aws_arch.Themes
): string | undefined {
const cfnResourceType = node.cfnType;
try {
if (
min <= GraphThemeRenderingIconTarget.DATA &&
max >= GraphThemeRenderingIconTarget.DATA
) {
const dataImage = _resolveResourceLikeDataImage(node, theme);
if (dataImage) {
return dataImage;
}
} else if (max <= GraphThemeRenderingIconTarget.DATA) {
return;
}
const resource = AwsArchitecture.getResource(cfnResourceType as any);
if (
min <= GraphThemeRenderingIconTarget.RESOURCE &&
max >= GraphThemeRenderingIconTarget.RESOURCE
) {
try {
const icon = resource.getResourceIcon("svg", theme);
if (icon) {
return icon;
}
if (
min <= GraphThemeRenderingIconTarget.GENERAL &&
max >= GraphThemeRenderingIconTarget.GENERAL
) {
const generalIcon = resource.getGeneralIcon("svg", theme);
if (generalIcon) {
return generalIcon;
}
}
} catch {}
}
if (
min <= GraphThemeRenderingIconTarget.SERVICE &&
max >= GraphThemeRenderingIconTarget.SERVICE
) {
try {
const icon = resource.getServiceIcon("svg", theme);
if (icon) {
return icon;
}
} catch {}
}
if (
min <= GraphThemeRenderingIconTarget.CATEGORY &&
max >= GraphThemeRenderingIconTarget.CATEGORY
) {
try {
return resource.getCategoryIcon("svg", theme);
} catch {}
}
return;
} catch {
return;
}
}