All files / core/blong-kukum/orchestrator/kukum treeFind.ts

100% Statements 31/31
87.5% Branches 7/8
100% Functions 1/1
100% Lines 31/31

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 321x 1x 1x 1x 1x 1x 1x 1x 1x 1x 1x 4x 3x 3x 3x 3x 3x 12x 12x 12x 12x 12x 12x 12x 12x 3x 3x 3x 3x 3x 1x  
import {library} from '@feasibleone/blong';
import type {KukumLibContext} from '../../operation.ts';
 
/**
 * `kukum.tree.find` — realm → group → file structure.
 *
 * Joins the registry's own view (groups, ports, layer files) with the realm/file
 * index it built while loading, so `tree` shows what was actually mounted.
 */
export default library(
    () =>
        function treeFind(this: KukumLibContext, _params?: unknown) {
            const description = this.registry?.describe?.();
            if (!description) return {available: false as const};
            return {
                available: true as const,
                realms: description.realms.map(realm => ({
                    realm,
                    groups: description.folders
                        .filter(folder => folder.realm === realm)
                        .map(folder => folder.group),
                    files: description.files
                        .filter(file => file.realm === realm)
                        .map(file => file.file),
                })),
                ports: description.ports,
                layerFiles: description.layerFiles,
                groups: description.groups,
            };
        },
);