@nx/angular
Version:
65 lines (64 loc) • 2.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.componentGenerator = componentGenerator;
const devkit_1 = require("@nx/devkit");
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);
(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,
// Angular v19 or higher defaults to true, while lower versions default to false
setStandalone: (angularMajorVersion >= 19 && !options.standalone) ||
(angularMajorVersion < 19 && options.standalone),
angularMajorVersion,
ngext: options.ngHtml ? '.ng' : '',
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;