MCPcopy Create free account
hub / github.com/codemix/graph / convertMergeClause

Function convertMergeClause

packages/graph/src/astToSteps.ts:750–793  ·  view source on GitHub ↗

* Convert a MERGE clause into a MergeStep.

(mergeClause: MergeClause)

Source from the content-addressed store, hash-verified

748 * Convert a MERGE clause into a MergeStep.
749 */
750function convertMergeClause(mergeClause: MergeClause): MergeStep {
751 let pattern: MergePatternConfig;
752
753 if (mergeClause.pattern.type === "NodePattern") {
754 const nodePattern = mergeClause.pattern as NodePattern;
755 pattern = {
756 type: "node",
757 variable: nodePattern.variable,
758 labels: nodePattern.labels,
759 properties: convertPropertyMap(nodePattern.properties),
760 };
761 } else if (mergeClause.pattern.type === "MergeRelationshipPattern") {
762 const relPattern = mergeClause.pattern as MergeRelationshipPattern;
763 pattern = {
764 type: "edge",
765 variable: relPattern.edge.variable,
766 label: relPattern.edge.label,
767 direction: relPattern.edge.direction,
768 properties: convertPropertyMap(relPattern.edge.properties),
769 startVariable: relPattern.startVariable,
770 endVariable: relPattern.endVariable,
771 };
772 } else {
773 throw new Error(`Unknown MERGE pattern type: ${(mergeClause.pattern as any).type}`);
774 }
775
776 return new MergeStep({
777 pattern,
778 onCreate: mergeClause.onCreate
779 ? mergeClause.onCreate.assignments.map((a) => ({
780 variable: a.variable,
781 property: a.property,
782 value: convertSetValue(a.value),
783 }))
784 : undefined,
785 onMatch: mergeClause.onMatch
786 ? mergeClause.onMatch.assignments.map((a) => ({
787 variable: a.variable,
788 property: a.property,
789 value: convertSetValue(a.value),
790 }))
791 : undefined,
792 });
793}
794
795/**
796 * Convert a WITH clause into a WithStep.

Callers 2

processQuerySegmentsFunction · 0.85
processLegacyQueryFunction · 0.85

Calls 3

convertPropertyMapFunction · 0.85
convertSetValueFunction · 0.85
mapMethod · 0.45

Tested by

no test coverage detected