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

Method extract_rtk_endpoints

codegraph-kernel/src/tsjs/extractors.rs:595–634  ·  view source on GitHub ↗
(&mut self, obj: Node<'t>)

Source from the content-addressed store, hash-verified

593 }
594
595 fn extract_rtk_endpoints(&mut self, obj: Node<'t>) {
596 for i in 0..obj.named_child_count() {
597 let Some(member) = obj.named_child(i) else { continue };
598 if member.kind() != "pair" {
599 continue;
600 }
601 let key = member.child_by_field_name("key");
602 let value = member.child_by_field_name("value");
603 let (Some(key), Some(value)) = (key, value) else { continue };
604 if value.kind() != "call_expression" {
605 continue;
606 }
607 let Some(callee) = value.child_by_field_name("function") else { continue };
608 if callee.kind() != "member_expression" {
609 continue;
610 }
611 let method = self.text(callee.child_by_field_name("property").unwrap_or(callee));
612 if method != "query" && method != "mutation" && method != "infiniteQuery" {
613 continue;
614 }
615 let key_name = util::object_key_name(self.text(key));
616 if let Some(handler) = self.rtk_endpoint_handler(value) {
617 self.extract_function(handler, Some(key_name));
618 } else {
619 // Config-only endpoint: bare node spanning the builder call.
620 let (sig, _) = util::slice_utf16(self.text(value), 80);
621 let row = self.create_node(
622 "function",
623 &key_name,
624 value,
625 Extra { signature: Some(sig), ..Extra::default() },
626 );
627 if let Some(row) = row {
628 self.stack.push(Scope { row, kind: "function", name: key_name });
629 self.visit_function_body(value);
630 self.stack.pop();
631 }
632 }
633 }
634 }
635
636 fn rtk_endpoint_handler(&self, call: Node<'t>) -> Option<Node<'t>> {
637 let args = call.child_by_field_name("arguments")?;

Callers 1

extract_variableMethod · 0.80

Calls 7

object_key_nameFunction · 0.85
slice_utf16Function · 0.85
rtk_endpoint_handlerMethod · 0.80
textMethod · 0.45
extract_functionMethod · 0.45
create_nodeMethod · 0.45
visit_function_bodyMethod · 0.45

Tested by

no test coverage detected