All files apidocBuild.js

86.66% Statements 13/15
87.5% Branches 7/8
100% Functions 1/1
86.66% Lines 13/15

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 402x 2x 2x                       2x 5x 3x     2x             2x 2x 2x 2x 2x               2x  
const apidoc = require('apidoc');
const { logger } = require('./logger');
const { OPTIONS } = require('./global');
 
/**
 * Build ApiDoc documentation.
 *
 * @param {object} options
 * @param {OPTIONS.apiDocBaseConfig} options.apiDocBaseConfig
 * @param {string[]} options.watchPath
 * @param {string} options.docsPath
 * @param {string} options.silent
 * @returns {*|{}|null}
 */
const setupDocs = ({ apiDocBaseConfig, watchPath: src, docsPath: dest, silent } = OPTIONS) => {
  if ((!Array.isArray(src) && !src?.length) || !dest) {
    return [];
  }
 
  const apiDocsConfig = {
    ...apiDocBaseConfig,
    src,
    dest,
    silent: apiDocBaseConfig.silent || silent
  };
 
  try {
    const { data } = apidoc.createDoc(apiDocsConfig);
    const updatedResult = JSON.parse(data);
    logger.info('apidocBuild.read.apiJsonFile');
    return updatedResult;
  } catch (e) {
    logger.error(`apidocBuild.apiDoc.createDoc[${e.message}]`);
  }
 
  return [];
};
 
module.exports = { setupDocs };