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

Method extract_rtk_endpoints

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

Source from the content-addressed store, hash-verified

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

Tested by

no test coverage detected