MCPcopy Create free account
hub / github.com/colbymchenry/codegraph / resolve

Function resolve

src/resolution/frameworks/go.ts:27–81  ·  view source on GitHub ↗
(ref: UnresolvedRef, context: ResolutionContext)

Source from the content-addressed store, hash-verified

25 },
26
27 resolve(ref: UnresolvedRef, context: ResolutionContext): ResolvedRef | null {
28 // Pattern 1: Handler references
29 if (ref.referenceName.endsWith('Handler') || ref.referenceName.startsWith('Handle')) {
30 const result = resolveByNameAndKind(ref.referenceName, 'function', HANDLER_DIRS, context);
31 if (result) {
32 return {
33 original: ref,
34 targetNodeId: result,
35 confidence: 0.8,
36 resolvedBy: 'framework',
37 };
38 }
39 }
40
41 // Pattern 2: Service/Repository references
42 if (ref.referenceName.endsWith('Service') || ref.referenceName.endsWith('Repository') || ref.referenceName.endsWith('Store')) {
43 const result = resolveByNameAndKind(ref.referenceName, null, SERVICE_DIRS, context, SERVICE_KINDS);
44 if (result) {
45 return {
46 original: ref,
47 targetNodeId: result,
48 confidence: 0.8,
49 resolvedBy: 'framework',
50 };
51 }
52 }
53
54 // Pattern 3: Middleware references
55 if (ref.referenceName.endsWith('Middleware') || ref.referenceName.startsWith('Auth') || ref.referenceName.startsWith('Log')) {
56 const result = resolveByNameAndKind(ref.referenceName, 'function', MIDDLEWARE_DIRS, context);
57 if (result) {
58 return {
59 original: ref,
60 targetNodeId: result,
61 confidence: 0.75,
62 resolvedBy: 'framework',
63 };
64 }
65 }
66
67 // Pattern 4: Model/Entity references (typically PascalCase structs)
68 if (/^[A-Z][a-zA-Z]+$/.test(ref.referenceName)) {
69 const result = resolveByNameAndKind(ref.referenceName, 'struct', MODEL_DIRS, context);
70 if (result) {
71 return {
72 original: ref,
73 targetNodeId: result,
74 confidence: 0.7,
75 resolvedBy: 'framework',
76 };
77 }
78 }
79
80 return null;
81 },
82
83 extract(filePath, content) {
84 if (!filePath.endsWith('.go')) return { nodes: [], references: [] };

Callers 15

closeMethod · 0.50
recycleWorkersMethod · 0.50
destroyMethod · 0.50
createYielderFunction · 0.50
listenMethod · 0.50
stopMethod · 0.50
finishFunction · 0.50
requestFunction · 0.50
onDataFunction · 0.50
doneFunction · 0.50
awaitCatchUpGateMethod · 0.50
finishFunction · 0.50

Calls 1

resolveByNameAndKindFunction · 0.70

Tested by

no test coverage detected