49 lines
1.2 KiB
TypeScript
49 lines
1.2 KiB
TypeScript
import type { Tree } from '@nrwl/devkit';
|
|
import {
|
|
addDependenciesToPackageJson,
|
|
formatFiles,
|
|
installPackagesTask,
|
|
} from '@nrwl/devkit';
|
|
import { getPkgVersionsForAngularMajorVersion } from '../../utils/version-utils';
|
|
import { getInstalledAngularVersionInfo } from '../utils/version-utils';
|
|
import {
|
|
generateSSRFiles,
|
|
normalizeOptions,
|
|
updateAppModule,
|
|
updateProjectConfig,
|
|
} from './lib';
|
|
import type { Schema } from './schema';
|
|
|
|
export async function setupSsr(tree: Tree, schema: Schema) {
|
|
const options = normalizeOptions(tree, schema);
|
|
|
|
generateSSRFiles(tree, options);
|
|
updateAppModule(tree, options);
|
|
updateProjectConfig(tree, options);
|
|
|
|
const installedAngularVersion = getInstalledAngularVersionInfo(tree);
|
|
const { angularVersion: ngPlatformServerVersion, ngUniversalVersion } =
|
|
getPkgVersionsForAngularMajorVersion(installedAngularVersion.major);
|
|
|
|
addDependenciesToPackageJson(
|
|
tree,
|
|
{
|
|
'@nguniversal/express-engine': ngUniversalVersion,
|
|
'@angular/platform-server': ngPlatformServerVersion,
|
|
},
|
|
{
|
|
'@nguniversal/builders': ngUniversalVersion,
|
|
}
|
|
);
|
|
|
|
if (!options.skipFormat) {
|
|
await formatFiles(tree);
|
|
}
|
|
|
|
return () => {
|
|
installPackagesTask(tree);
|
|
};
|
|
}
|
|
|
|
export default setupSsr;
|