nx/packages/nuxt/src/utils/create-ts-config.ts
2023-11-07 19:15:32 +04:00

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);
}