@nestjs/schematics
Version:
Nest - modern, fast, powerful node.js web framework (@schematics)
39 lines (38 loc) • 1.59 kB
JavaScript
import { chain, noop, } from '@angular-devkit/schematics';
import { formatFiles } from '../../utils/format-files.rule.js';
import { migrateCliConfig } from './steps/cli-config.step.js';
import { migrateConfigModule } from './steps/config.step.js';
import { reviewSources } from './steps/diagnostics.step.js';
import { installDependencies, updateNestDependencies, } from './steps/dependencies.step.js';
import { migrateGraphql } from './steps/graphql.step.js';
import { migrateNats } from './steps/nats.step.js';
import { setupObserve } from './steps/observe.step.js';
import { migrateTestRunner } from './steps/testing.step.js';
import { checkTsConfig } from './steps/tsconfig.step.js';
import { assertUpgradeable, checkNodeVersion, } from './steps/preconditions.step.js';
import { UpgradeReport } from './upgrade.utils.js';
export function main(options) {
const report = new UpgradeReport();
return chain([
(tree) => {
checkNodeVersion(report);
assertUpgradeable(tree, report);
return tree;
},
updateNestDependencies(options, report),
migrateTestRunner(report),
migrateCliConfig(report),
migrateGraphql(report),
migrateNats(report),
migrateConfigModule(report),
options.observe ? setupObserve(report) : noop(),
checkTsConfig(report),
reviewSources(report),
options.format ? formatFiles() : noop(),
installDependencies(options, report),
(tree, context) => {
report.print(context);
return tree;
},
]);
}