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

66 lines (65 loc) 2.96 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.componentGenerator = componentGenerator; const devkit_1 = require("@nx/devkit"); const zoneless_1 = require("../../utils/zoneless"); const utils_1 = require("../utils"); const version_utils_1 = require("../utils/version-utils"); const lib_1 = require("./lib"); async function componentGenerator(tree, rawOptions) { const options = await (0, lib_1.normalizeOptions)(tree, rawOptions); const { major: angularMajorVersion } = (0, version_utils_1.getInstalledAngularVersionInfo)(tree); const project = (0, devkit_1.readProjectConfiguration)(tree, options.projectName); const zoneless = (0, zoneless_1.isZonelessApp)(project); (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), options.directory, { name: options.name, fileName: options.fileName, symbolName: options.symbolName, exportDefault: options.exportDefault, style: options.style, inlineStyle: options.inlineStyle, inlineTemplate: options.inlineTemplate, standalone: options.standalone, skipSelector: options.skipSelector, changeDetection: options.changeDetection, viewEncapsulation: options.viewEncapsulation, displayBlock: options.displayBlock, selector: options.selector, angularMajorVersion, ngext: options.ngHtml ? '.ng' : '', zoneless, tpl: '', }); if (options.skipTests) { const pathToSpecFile = (0, devkit_1.joinPathFragments)(options.directory, `${options.fileName}.spec.ts`); tree.delete(pathToSpecFile); } if (options.inlineTemplate) { const pathToTemplateFile = (0, devkit_1.joinPathFragments)(options.directory, `${options.fileName}.html`); tree.delete(pathToTemplateFile); } if (options.style === 'none' || options.inlineStyle) { const pathToStyleFile = (0, devkit_1.joinPathFragments)(options.directory, `${options.fileName}.${options.style}`); tree.delete(pathToStyleFile); } if (!options.skipImport && !options.standalone) { let modulePath; try { modulePath = (0, lib_1.findModuleFromOptions)(tree, options, options.projectRoot); } catch (e) { modulePath = (0, lib_1.findModuleFromOptions)(tree, { ...options, moduleExt: '-module.ts', routingModuleExt: '-routing-module.ts', }, options.projectRoot); } (0, utils_1.addToNgModule)(tree, options.directory, modulePath, options.name, options.symbolName, options.fileName, 'declarations', true, options.export); } (0, lib_1.exportComponentInEntryPoint)(tree, options); (0, lib_1.setGeneratorDefaults)(tree, options); if (!options.skipFormat) { await (0, devkit_1.formatFiles)(tree); } } exports.default = componentGenerator;