tunnckoCore/koa-better-body

View on GitHub
presets/dev/src/configs/docs/index.js

Summary

Maintainability
A
2 hrs
Test Coverage
'use strict';

const utils = require('@tunnckocore/utils');

module.exports = function createJestDocksConfig(options) {
  const opts = { cwd: process.cwd(), ...options };
  const { exts, alias, workspaces } = utils.createAliases(opts.cwd);
  const ignores = []
    .concat(opts.ignores)
    .filter(Boolean)
    .map((x) => (typeof x === 'string' ? x : x.toString()));

  const isMonorepo = workspaces.length > 0;

  const jestCfg = {
    rootDir: opts.cwd,
    displayName: 'docs',
    testMatch: isMonorepo
      ? Object.values(alias)
          .map((source) => `${source}/*.{${exts.join(',')}}`)
          .filter((x) => {
            const ignored = ignores.find((name) => x.includes(name));

            return !ignored;
          })
      : [`<rootDir>/src/index.{${exts.join(',')}}`],
    testPathIgnorePatterns: [
      /node_modules/.toString(),
      /(?:__)?(?:fixtures?|supports?|shared)(?:__)?/.toString(),
    ].concat(ignores),
    moduleFileExtensions: exts,
    runner: 'jest-runner-docs',
  };

  if (isMonorepo) {
    jestCfg.moduleDirectories = ['node_modules'].concat(workspaces);
    jestCfg.moduleNameMapper = alias;
  }

  return jestCfg;
};