'use strict';

const { execSync } = require('child_process');
const fg = require('fast-glob');

const components = fg.sync('*', { cwd: 'components', onlyDirectories: true });
// precomputed scope
const scopeComplete = execSync('git status --porcelain || true')
  .toString()
  .trim()
  .split('\n')
  .find(r => ~r.indexOf('M  '))
  ?.replace(/(\/)/g, '%%')
  ?.match(/components%%((\w|-)*)/)?.[1];

/** @type {import('cz-git').CommitizenGitOptions} */
module.exports = {
  scopes: ['site', 'util', 'script', 'tool', ...components],
  scopeFilters: ['__tests__', '_util'],
  customScopesAlign: !scopeComplete ? 'top' : 'bottom',
  defaultScope: scopeComplete,
  maxHeaderLength: 100,
  allowEmptyIssuePrefixs: false,
  allowCustomIssuePrefixs: false,
};