MCPcopy
hub / github.com/livebud/bud / extract_identifiers

Function extract_identifiers

package/svelte/compiler.js:5614–5651  ·  view source on GitHub ↗
(param, nodes = [])

Source from the content-addressed store, hash-verified

5612 return extract_identifiers(param).map((node2) => node2.name);
5613 }
5614 function extract_identifiers(param, nodes = []) {
5615 switch (param.type) {
5616 case "Identifier":
5617 nodes.push(param);
5618 break;
5619 case "MemberExpression":
5620 let object = param;
5621 while (object.type === "MemberExpression") {
5622 object = object.object;
5623 }
5624 nodes.push(object);
5625 break;
5626 case "ObjectPattern":
5627 const handle_prop = (prop) => {
5628 if (prop.type === "RestElement") {
5629 extract_identifiers(prop.argument, nodes);
5630 } else {
5631 extract_identifiers(prop.value, nodes);
5632 }
5633 };
5634 param.properties.forEach(handle_prop);
5635 break;
5636 case "ArrayPattern":
5637 const handle_element = (element) => {
5638 if (element)
5639 extract_identifiers(element, nodes);
5640 };
5641 param.elements.forEach(handle_element);
5642 break;
5643 case "RestElement":
5644 extract_identifiers(param.argument, nodes);
5645 break;
5646 case "AssignmentPattern":
5647 extract_identifiers(param.left, nodes);
5648 break;
5649 }
5650 return nodes;
5651 }
5652 function push_array(array, items) {
5653 for (let i = 0; i < items.length; i++) {
5654 array.push(items[i]);

Callers 5

extract_namesFunction · 0.85
handle_propFunction · 0.85
handle_elementFunction · 0.85
constructorMethod · 0.85
enterMethod · 0.85

Calls 1

pushMethod · 0.80

Tested by

no test coverage detected