All files / utils project-configuration.util.ts

83.33% Statements 15/18
78.57% Branches 11/14
100% Functions 2/2
83.33% Lines 15/18

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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56          1x 2x 2x 1x               1x 1x             2x           1x 3x 3x 2x               2x 2x           2x         3x    
import { type ProjectConfiguration, readProjectConfiguration, type Tree, updateProjectConfiguration } from '@nx/devkit';
 
/**
 * Updates linter configuration in a respective project.json file.
 */
export const updateProjectLinterConfig = <T = Record<string, string>>(schema: T & { name: string }, tree: Tree) => {
  const projectConfig: ProjectConfiguration = readProjectConfiguration(tree, schema.name);
  if (typeof projectConfig.targets !== 'undefined') {
    Iif (typeof projectConfig.targets['lint'] === 'undefined') {
      Object.defineProperty(projectConfig.targets, 'lint', {
        configurable: true,
        enumerable: true,
        writable: true,
        value: {},
      });
    }
    projectConfig.targets['lint'].executor = '@nx/eslint:lint';
    projectConfig.targets['lint'].options = {
      ...(projectConfig.targets['lint'].options ?? {}),
      eslintConfig: `{projectRoot}/eslint.config.mjs`,
      lintFilePatterns: [`{projectRoot}/**/*.ts`, `{projectRoot}/**/*.html`],
    };
  }
 
  updateProjectConfiguration(tree, schema.name, projectConfig);
};
 
/**
 * Updates test configuration in a respective project.json file.
 */
export const updateProjectTestConfig = <T = Record<string, string>>(schema: T & { name: string }, tree: Tree, userInterface?: boolean) => {
  const projectConfig: ProjectConfiguration = readProjectConfiguration(tree, schema.name);
  if (typeof projectConfig.targets !== 'undefined') {
    Iif (typeof projectConfig.targets['test'] === 'undefined') {
      Object.defineProperty(projectConfig.targets, 'test', {
        configurable: true,
        enumerable: true,
        writable: true,
        value: {},
      });
    }
    projectConfig.targets['test'].executor = '@nx/vite:test';
    projectConfig.targets['test'].options = {
      compiler: 'swc',
      configFile: `{projectRoot}/vitest.config.mts`,
      coverageProvider: 'istanbul',
      uiFramework: userInterface === true ? 'angular' : 'none',
    };
    Iif (typeof projectConfig.targets['test'].outputs !== 'undefined') {
      delete projectConfig.targets['test'].outputs;
    }
  }
 
  updateProjectConfiguration(tree, schema.name, projectConfig);
};