.nano-staged.mjs 633 B

123456789101112131415161718192021
  1. import {resolve, sep} from 'path';
  2. export default {
  3. '*.{js,ts,vue}': 'eslint --cache --fix',
  4. /**
  5. * Run typechecking if any type-sensitive files was staged
  6. * @param {string[]} filenames
  7. * @return {string[]}
  8. */
  9. 'packages/**/{*.ts,*.vue,tsconfig.json}': ({filenames}) => {
  10. const pathToPackages = resolve(process.cwd(), 'packages') + sep;
  11. return Array.from(
  12. filenames.reduce((set, filename) => {
  13. const pack = filename.replace(pathToPackages, '').split(sep)[0];
  14. set.add(`npm run typecheck:${pack} --if-present`);
  15. return set;
  16. }, new Set),
  17. );
  18. },
  19. };