function stringify_parameters()

in src/PageSections/_Private/stringify_parameters.hack [16:46]


function stringify_parameters(
  string $ns,
  StringifyFormat $format,
  ScannedFunctionish $function,
  ?DocBlock $docs,
): string {
  $params = Vec\map(
    $function->getParameters(),
    $p ==> stringify_parameter(
      $ns,
      $p,
      $docs?->getParameterInfo()['$'.$p->getName()] ?? null,
    ),
  );

  if (!$params) {
    return '()';
  }

  switch($format) {
    case StringifyFormat::MULTI_LINE:
      return $params
        |> Vec\map($$, $p ==> '  '.$p.',')
        |> Str\join($$, "\n")
        |> "(\n".$$."\n)";
    case StringifyFormat::ONE_LINE:
      return $params
        |> Str\join($$, ', ')
        |> '('.$$.')';
  }
}