Fetch utilities for doxdox server.
$ npm install doxdox-fetch --save.env
GITHUB_API_TOKEN_READONLY=xxxxxpackage.json
{
  "type": "module",
  "dependencies": {
    "doxdox-fetch": "2.0.0"
  },
  "devDependencies": {
    "dotenv": "16.0.0"
  },
  "scripts": {
    "test": "node -r dotenv/config index.js"
  },
  "private": true
}index.js
import { downloadFile, getRepoData, parseFiles } from 'doxdox-fetch';
import { parseString } from 'doxdox-parser-custom';
import { Doc } from 'doxdox-core';
(async () => {
  const repoData = await getRepoData(username, repo, {
    GITHUB_API_TOKEN: process.env.GITHUB_API_TOKEN_READONLY
  });
  const selectedBranch =
    branch && [repoData.default_branch, ...repoData.tags].includes(branch)
      ? branch
      : repoData.default_branch;
  const files = await downloadFile(username, repo, selectedBranch, [
    /.[jt]s$/,
    /package.json$/,
    /\.doxdoxignore$/
  ]);
  const jsFiles = files.filter(
    ({ path }) =>
      path.match(/\.[jt]sx?$/) &&
      !path.match(/\.min\.[jt]sx?$/) &&
      !path.match(/\.test\.[jt]sx?$/) &&
      !path.match(/^dist\//) &&
      !path.match(/__tests__\//)
  );
  const pkgFile = files.find(({ path }) => path.match(/^package\.json$/));
  const pkgFileContents = JSON.parse(pkgFile?.content || '{}');
  const doc: Doc = {
    name: pkgFileContents.name || repoData.name,
    description: pkgFileContents.description || repoData.description,
    homepage: pkgFileContents.homepage || repoData.html_url,
    files: await parseFiles(jsFiles, parseString)
  };
  console.log(doc);
})();