/
create-files.ts
53 lines (46 loc) · 1.35 KB
/
create-files.ts
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
import {
generateFiles,
offsetFromRoot,
readProjectConfiguration,
Tree,
} from '@nrwl/devkit';
import { join } from 'path';
import { JestProjectSchema } from '../schema';
export function createFiles(tree: Tree, options: JestProjectSchema) {
const projectConfig = readProjectConfiguration(tree, options.project);
const filesFolder =
options.setupFile === 'angular' ? '../files-angular' : '../files';
let transformer: string;
if (options.compiler === 'babel' || options.babelJest) {
transformer = 'babel-jest';
} else if (options.compiler === 'swc') {
transformer = '@swc/jest';
} else {
transformer = 'ts-jest';
}
generateFiles(tree, join(__dirname, filesFolder), projectConfig.root, {
tmpl: '',
...options,
transformer,
ext: options.js && tree.exists('jest.preset.js') ? '.js' : '.ts',
projectRoot: projectConfig.root,
offsetFromRoot: offsetFromRoot(projectConfig.root),
});
if (options.setupFile === 'none') {
tree.delete(join(projectConfig.root, './src/test-setup.ts'));
}
if (options.babelJest && !tree.exists('babel.config.json')) {
tree.write(
'babel.config.json',
JSON.stringify({
babelrcRoots: ['*'],
})
);
}
if (options.js) {
tree.rename(
join(projectConfig.root, 'jest.config.ts'),
join(projectConfig.root, 'jest.config.js')
);
}
}