40 lines
990 B
TypeScript
40 lines
990 B
TypeScript
import type { Tree } from '@nrwl/devkit';
|
|
import {
|
|
addDependenciesToPackageJson,
|
|
generateFiles,
|
|
joinPathFragments,
|
|
readJson,
|
|
} from '@nrwl/devkit';
|
|
import { GeneratorOptions } from './schema';
|
|
|
|
export function karmaGenerator(tree: Tree, options: GeneratorOptions) {
|
|
const packageJson = readJson(tree, 'package.json');
|
|
|
|
if (!tree.exists('karma.conf.js')) {
|
|
generateFiles(tree, joinPathFragments(__dirname, 'files'), '.', {
|
|
tmpl: '',
|
|
});
|
|
}
|
|
|
|
if (options.skipPackageJson || packageJson.devDependencies['karma']) {
|
|
return () => {};
|
|
}
|
|
return addDependenciesToPackageJson(
|
|
tree,
|
|
{},
|
|
{
|
|
karma: '~6.3.0',
|
|
'karma-chrome-launcher': '~3.1.0',
|
|
'karma-coverage': '~2.2.0',
|
|
'karma-jasmine': '~5.0.0',
|
|
'karma-jasmine-html-reporter': '~1.7.0',
|
|
'jasmine-core': '~4.1.0',
|
|
'jasmine-spec-reporter': '~7.0.0',
|
|
'@types/jasmine': '~4.0.0',
|
|
'@types/node': '16.11.7',
|
|
}
|
|
);
|
|
}
|
|
|
|
export default karmaGenerator;
|