UNPKG

@nx/angular

Version:

The Nx Plugin for Angular contains executors, generators, and utilities for managing Angular applications and libraries within an Nx workspace. It provides: - Integration with libraries such as Storybook, Jest, ESLint, Tailwind CSS, Playwright and Cypre

81 lines (80 loc) 4.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createFiles = createFiles; const devkit_1 = require("@nx/devkit"); const js_1 = require("@nx/js"); const onboarding_1 = require("nx/src/nx-cloud/utilities/onboarding"); const test_runners_1 = require("../../../utils/test-runners"); const artifact_types_1 = require("../../utils/artifact-types"); const selector_1 = require("../../utils/selector"); const update_project_root_tsconfig_1 = require("../../utils/update-project-root-tsconfig"); const version_utils_1 = require("../../utils/version-utils"); async function createFiles(tree, options, rootOffset) { const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree); const rootSelector = `${options.prefix}-root`; (0, selector_1.validateHtmlSelector)(rootSelector); const nxWelcomeSelector = `${options.prefix}-nx-welcome`; (0, selector_1.validateHtmlSelector)(nxWelcomeSelector); const onBoardingStatus = await (0, onboarding_1.createNxCloudOnboardingURLForWelcomeApp)(tree, options.nxCloudToken); const connectCloudUrl = onBoardingStatus === 'unclaimed' && (await (0, onboarding_1.getNxCloudAppOnBoardingUrl)(options.nxCloudToken)); const componentType = (0, artifact_types_1.getComponentType)(tree); const componentFileSuffix = componentType ? `.${componentType}` : ''; const moduleTypeSeparator = (0, artifact_types_1.getModuleTypeSeparator)(tree); const substitutions = { rootSelector, appName: options.name, inlineStyle: options.inlineStyle, inlineTemplate: options.inlineTemplate, style: options.style, viewEncapsulation: options.viewEncapsulation, unitTesting: options.unitTestRunner !== test_runners_1.UnitTestRunner.None, routing: options.routing, minimal: options.minimal, nxWelcomeSelector, rootTsConfig: (0, devkit_1.joinPathFragments)(rootOffset, (0, js_1.getRootTsConfigFileName)(tree)), angularMajorVersion, rootOffset, // Angular v19 or higher defaults to true, while lower versions default to false setStandaloneFalse: angularMajorVersion >= 19, setStandaloneTrue: angularMajorVersion < 19, provideGlobalErrorListener: angularMajorVersion >= 20, usePlatformBrowserDynamic: angularMajorVersion < 20, componentType: componentType ? (0, devkit_1.names)(componentType).className : '', componentFileSuffix, moduleTypeSeparator, connectCloudUrl, tutorialUrl: options.standalone ? 'https://nx.dev/getting-started/tutorials/angular-standalone-tutorial?utm_source=nx-project' : 'https://nx.dev/getting-started/tutorials/angular-monorepo-tutorial?utm_source=nx-project', tpl: '', }; const angularAppType = options.standalone ? 'standalone' : 'ng-module'; (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/base'), options.appProjectRoot, substitutions); if (angularMajorVersion >= 20) { tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, 'tsconfig.editor.json')); } if (options.standalone) { (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-components'), options.appProjectRoot, substitutions); } else { (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/ng-module'), options.appProjectRoot, substitutions); } (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/nx-welcome', onBoardingStatus, angularAppType), options.appProjectRoot, substitutions); (0, update_project_root_tsconfig_1.updateProjectRootTsConfig)(tree, options.appProjectRoot, (0, js_1.getRelativePathToRootTsConfig)(tree, options.appProjectRoot), options.rootProject); if (!options.routing) { tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, '/src/app/app.routes.ts')); } if (options.skipTests || options.unitTestRunner === test_runners_1.UnitTestRunner.None) { tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, `src/app/app${componentFileSuffix}.spec.ts`)); } if (options.inlineTemplate) { tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, `src/app/app${componentFileSuffix}.html`)); } if (options.inlineStyle) { tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, `src/app/app${componentFileSuffix}.${options.style}`)); } if (options.minimal) { tree.delete((0, devkit_1.joinPathFragments)(options.appProjectRoot, `src/app/nx-welcome${componentFileSuffix}.ts`)); } }