core/converters/graph.concept.converter.ts

core/converters/graph.concept.converter.ts is a file in Bane's Lab Build Scripts. 19 lines of code and 3 definitions.

import type { Concept } from "@govlab/context";
import type { GraphEdge } from "@banes-lab/web/types/graph.types.js";
import type { Resolver } from "#types/ontology.types";

export const conceptEdges = function conceptEdges(
    concepts: readonly Concept[],
    resolve: Resolver,
    relation: string,
): readonly GraphEdge[] {
    return concepts.flatMap((concept) => {
        const home = resolve.target(concept.home).ref;
        if (home === null) {
            return [];
        }
        return concept.members.flatMap((member) => {
            const from = resolve.target(member).ref;
            return from === null ? [] : [{ from, relation, to: home }];
        });
    });
};