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

63 lines (62 loc) 3.36 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 ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup"); const semver_1 = require("semver"); const test_runners_1 = require("../../../utils/test-runners"); const version_utils_1 = require("../../utils/version-utils"); function createFiles(tree, options, project) { const rootOffset = (0, devkit_1.offsetFromRoot)(options.libraryOptions.projectRoot); const libNames = (0, devkit_1.names)(options.libraryOptions.fileName); const pathToComponent = options.componentOptions.flat ? options.libraryOptions.fileName : (0, devkit_1.joinPathFragments)(options.libraryOptions.fileName, options.libraryOptions.fileName); const version = (0, version_utils_1.getInstalledAngularVersion)(tree); const { major, minor } = (0, semver_1.parse)(version); const componentType = options.componentOptions.type ? (0, devkit_1.names)(options.componentOptions.type).className : ''; const componentFileSuffix = options.componentOptions.type ? `.${options.componentOptions.type}` : ''; const substitutions = { libName: options.libraryOptions.name, libFileName: options.libraryOptions.fileName, libClassName: libNames.className, libPropertyName: libNames.propertyName, unitTesting: options.libraryOptions.unitTestRunner !== test_runners_1.UnitTestRunner.None, rootTsConfig: (0, devkit_1.joinPathFragments)(rootOffset, (0, js_1.getRootTsConfigFileName)(tree)), skipModule: options.libraryOptions.skipModule, projectRoot: options.libraryOptions.projectRoot, routing: options.libraryOptions.routing, pathToComponent, importPath: options.libraryOptions.importPath, rootOffset, angularPeerDepVersion: `^${major}.${minor}.0`, componentType, componentFileSuffix, moduleTypeSeparator: options.libraryOptions.moduleTypeSeparator, tpl: '', }; (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/base'), options.libraryOptions.projectRoot, substitutions); if (options.libraryOptions.standalone) { (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/standalone-components'), options.libraryOptions.projectRoot, substitutions); } else { (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../files/ng-module'), options.libraryOptions.projectRoot, substitutions); if (options.libraryOptions.skipModule) { tree.delete(options.libraryOptions.modulePath); } } if (!options.libraryOptions.routing) { tree.delete((0, devkit_1.joinPathFragments)((0, ts_solution_setup_1.getProjectSourceRoot)(project, tree), `lib/lib.routes.ts`)); } if (!options.libraryOptions.buildable && !options.libraryOptions.publishable) { tree.delete((0, devkit_1.joinPathFragments)(project.root, `tsconfig.lib.prod.json`)); tree.delete((0, devkit_1.joinPathFragments)(project.root, `ng-package.json`)); tree.delete((0, devkit_1.joinPathFragments)(project.root, `package.json`)); } }