function generateMethod()

in sync-api-docs/generateMarkdown.js [81:141]


function generateMethod(method, component) {
  let descriptionTokenized = '';
  let header = 'Valid `params` keys are:';
  let mdPoints = '';
  if (method?.params[0]?.type?.raw) {
    let desc = method?.params[0]?.type?.raw;
    let len = method?.params[0]?.type?.signature?.properties?.length;
    descriptionTokenized = tokenizeComment(desc);

    if (
      descriptionTokenized?.examples &&
      descriptionTokenized?.examples.length === len
    ) {
      let obj = [];
      for (let i = 0; i < len; i++) {
        let newObj = method?.params[0]?.type?.signature?.properties[i];
        newObj['description'] = descriptionTokenized?.examples[i]?.value;
        obj.push(newObj);
      }

      obj.map(item => {
        if (item.description.trim() !== 'missing')
          mdPoints += `- '${item.key}' (${item.value.name}) - ${item.description}`;
        else mdPoints += `- '${item.key}' (${item.value.name})`;
      });
    }
  }

  if (method?.docblock) {
    let dblock = method.docblock
      .split('\n')
      .map(line => {
        return line.replace(/  /, '');
      })
      .join('\n');
    const docblockTokenized = tokenizeComment(dblock);
    dblock = dblock.replace(/@platform .*/g, '');
    method.rnTags = {};
    const platformTag = docblockTokenized.tags.find(
      ({key}) => key === 'platform'
    );

    if (platformTag) {
      method.rnTags.platform = platformTag.value.split(',');
    }
  }

  return (
    '### `' +
    method.name +
    '()`' +
    (method.rnTags && method.rnTags.platform
      ? formatMultiplePlatform(method.rnTags.platform)
      : '') +
    '\n' +
    '\n' +
    (method.description ? method.description + '\n\n' : '') +
    generateMethodSignatureTable(method, component) +
    (mdPoints && header + '\n' + mdPoints)
  ).trim();
}