Jason Jean cb7fb22bca
feat(core): remove @types/node from default workspace (#9853)
Signed-off-by: Jason Jean <jasonjean1993@gmail.com>
2022-04-20 12:43:23 -04:00

61 lines
1.4 KiB
TypeScript

import {
addDependenciesToPackageJson,
convertNxGenerator,
formatFiles,
GeneratorCallback,
removeDependenciesFromPackageJson,
Tree,
} from '@nrwl/devkit';
import { jestInitGenerator } from '@nrwl/jest';
import { setDefaultCollection } from '@nrwl/workspace/src/utilities/set-default-collection';
import {
nxVersion,
tslibVersion,
typesNodeVersion,
} from '../../utils/versions';
import { Schema } from './schema';
function updateDependencies(tree: Tree) {
removeDependenciesFromPackageJson(tree, ['@nrwl/node'], []);
return addDependenciesToPackageJson(
tree,
{
tslib: tslibVersion,
},
{ '@nrwl/node': nxVersion, '@types/node': typesNodeVersion }
);
}
function normalizeOptions(schema: Schema) {
return {
...schema,
unitTestRunner: schema.unitTestRunner ?? 'jest',
};
}
export async function initGenerator(tree: Tree, schema: Schema) {
const options = normalizeOptions(schema);
setDefaultCollection(tree, '@nrwl/node');
let jestInstall: GeneratorCallback;
if (options.unitTestRunner === 'jest') {
jestInstall = await jestInitGenerator(tree, {});
}
const installTask = await updateDependencies(tree);
if (!options.skipFormat) {
await formatFiles(tree);
}
return async () => {
if (jestInstall) {
await jestInstall();
}
await installTask();
};
}
export default initGenerator;
export const initSchematic = convertNxGenerator(initGenerator);