@flanksource/clicky-ui
Version:
Flanksource Clicky UI — React component library built on shadcn/ui with light/dark and density theming.
72 lines (71 loc) • 2.3 kB
JavaScript
function getClickySpecMeta(spec) {
return spec == null ? void 0 : spec["x-clicky"];
}
function getClickySurfaces(spec) {
var _a;
return ((_a = getClickySpecMeta(spec)) == null ? void 0 : _a.surfaces) ?? [];
}
function getOperationClickyMeta(operation) {
return operation.operation["x-clicky"];
}
function filterOperationsBySurface(operations, surfaceKey) {
if (!surfaceKey) return [];
return operations.filter(
(operation) => {
var _a;
return ((_a = getOperationClickyMeta(operation)) == null ? void 0 : _a.surface) === surfaceKey;
}
);
}
function findSurfaceOperation(operations, surfaceKey, predicate) {
return filterOperationsBySurface(operations, surfaceKey).find((operation) => {
const meta = getOperationClickyMeta(operation);
return meta != null && predicate(meta);
});
}
function findSurfaceListOperation(operations, surfaceKey) {
return findSurfaceOperation(
operations,
surfaceKey,
(meta) => meta.verb === "list" && meta.scope === "collection"
);
}
function findSurfaceDetailOperation(operations, surfaceKey) {
return findSurfaceOperation(
operations,
surfaceKey,
(meta) => meta.verb === "get" && meta.scope === "entity"
);
}
function findSurfaceCollectionActions(operations, surfaceKey) {
return filterOperationsBySurface(operations, surfaceKey).filter((operation) => {
const meta = getOperationClickyMeta(operation);
return meta != null && meta.scope === "collection" && meta.verb !== "list";
});
}
function findSurfaceEntityActions(operations, surfaceKey) {
return filterOperationsBySurface(operations, surfaceKey).filter((operation) => {
const meta = getOperationClickyMeta(operation);
return meta != null && meta.scope === "entity" && meta.verb !== "get";
});
}
function makeSurfaceDefinition(surface) {
return {
key: surface.key,
title: surface.title,
description: surface.description || `Manage ${surface.title.toLowerCase()} resources.`
};
}
export {
filterOperationsBySurface,
findSurfaceCollectionActions,
findSurfaceDetailOperation,
findSurfaceEntityActions,
findSurfaceListOperation,
findSurfaceOperation,
getClickySpecMeta,
getClickySurfaces,
getOperationClickyMeta,
makeSurfaceDefinition
};
//# sourceMappingURL=clickyMetadata.js.map