58 lines
1.3 KiB
TypeScript
58 lines
1.3 KiB
TypeScript
import { Tree, writeJson } from '@nx/devkit';
|
|
import * as shared from '@nx/js/src/utils/typescript/create-ts-config';
|
|
|
|
export function createTsConfig(
|
|
host: Tree,
|
|
options: {
|
|
projectRoot: string;
|
|
rootProject?: boolean;
|
|
unitTestRunner?: string;
|
|
outputPath: string;
|
|
},
|
|
relativePathToRootTsConfig: string
|
|
) {
|
|
createAppTsConfig(host, options);
|
|
const json = {
|
|
compilerOptions: {},
|
|
files: [],
|
|
include: [],
|
|
references: [
|
|
{
|
|
path: './tsconfig.app.json',
|
|
},
|
|
],
|
|
} as any;
|
|
|
|
if (options.unitTestRunner !== 'none') {
|
|
json.references.push({
|
|
path: './tsconfig.spec.json',
|
|
});
|
|
}
|
|
|
|
// inline tsconfig.base.json into the project
|
|
if (options.rootProject) {
|
|
json.compileOnSave = false;
|
|
json.compilerOptions = {
|
|
...shared.tsConfigBaseOptions,
|
|
...json.compilerOptions,
|
|
};
|
|
json.exclude = ['node_modules', 'tmp'];
|
|
} else {
|
|
json.extends = relativePathToRootTsConfig;
|
|
}
|
|
|
|
writeJson(host, `${options.projectRoot}/tsconfig.json`, json);
|
|
}
|
|
|
|
function createAppTsConfig(host: Tree, options: { projectRoot: string }) {
|
|
const json = {
|
|
extends: './tsconfig.json',
|
|
compilerOptions: {
|
|
composite: true,
|
|
},
|
|
exclude: [],
|
|
};
|
|
|
|
writeJson(host, `${options.projectRoot}/tsconfig.app.json`, json);
|
|
}
|