MCPcopy Create free account
hub / github.com/Acode-Foundation/Acode / parseFunction

Function parseFunction

src/lib/console.js:382–428  ·  view source on GitHub ↗
(data)

Source from the content-addressed store, hash-verified

380 };
381
382 function parseFunction(data) {
383 let parsed;
384 let str;
385
386 try {
387 parsed = parse(data.toString(), acornOptions).body[0];
388 } catch (error) {
389 try {
390 const fun = ("(" + data.toString() + ")").replace(/\{.*\}/, "{}");
391 parsed = parse(fun, acornOptions).body[0];
392 } catch (error) {
393 return data
394 .toString()
395 .replace(/({).*(})/, "$1...$2")
396 .replace(/^function\s+[\w_$\d]+\s*/, "")
397 .replace(/\s*/g, "");
398 }
399 }
400
401 if (parsed.type === "ExpressionStatement") {
402 const expression = parsed.expression;
403 if (expression.type === "ArrowFunctionExpression") {
404 str = joinParams(expression.params, "arrow");
405 } else if (expression.type === "FunctionExpression") {
406 str = joinParams(expression.params);
407 }
408 } else {
409 let string = parsed.id.name + joinParams(parsed.params || []);
410 str = string;
411 }
412
413 function joinParams(params, type) {
414 let parameter = "(";
415 params.map(
416 (param) =>
417 (parameter +=
418 param.type === "RestElement"
419 ? "..." + param.argument.name
420 : param.name + ","),
421 );
422 parameter = parameter.replace(/,$/, "");
423 parameter += ")" + (type === "arrow" ? "=>" : "") + "{...}";
424 return parameter;
425 }
426
427 return str;
428 }
429
430 /**
431 * Prints to the console.

Callers 2

getValFunction · 0.85
logFunction · 0.85

Calls 3

joinParamsFunction · 0.85
parseFunction · 0.50
toStringMethod · 0.45

Tested by

no test coverage detected