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) 3.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.normalizeOptions = normalizeOptions; const devkit_1 = require("@nx/devkit"); const project_name_and_root_utils_1 = require("@nx/devkit/src/generators/project-name-and-root-utils"); const test_runners_1 = require("../../../utils/test-runners"); const artifact_types_1 = require("../../utils/artifact-types"); async function normalizeOptions(host, schema) { schema.standalone = schema.standalone ?? true; // Create a schema with populated default values const options = { buildable: false, linter: 'eslint', publishable: false, simpleName: false, skipFormat: false, unitTestRunner: test_runners_1.UnitTestRunner.Jest, // Publishable libs cannot use `full` yet, so if its false then use the passed value or default to `full` compilationMode: schema.publishable ? 'partial' : schema.compilationMode ?? 'full', skipModule: schema.skipModule || schema.standalone, ...schema, }; await (0, project_name_and_root_utils_1.ensureRootProjectName)(options, 'library'); const { projectName, names: projectNames, projectRoot, importPath, } = await (0, project_name_and_root_utils_1.determineProjectNameAndRootOptions)(host, { name: options.name, projectType: 'library', directory: options.directory, importPath: options.importPath, }); const fileName = options.simpleName ? projectNames.projectSimpleName : projectNames.projectFileName; const moduleName = `${(0, devkit_1.names)(fileName).className}Module`; const parsedTags = options.tags ? options.tags.split(',').map((s) => s.trim()) : []; const moduleTypeSeparator = (0, artifact_types_1.getModuleTypeSeparator)(host); const modulePath = `${projectRoot}/src/lib/${fileName}${moduleTypeSeparator}module.ts`; const ngCliSchematicLibRoot = projectName; const allNormalizedOptions = { ...options, linter: options.linter ?? 'eslint', unitTestRunner: options.unitTestRunner ?? test_runners_1.UnitTestRunner.Jest, prefix: options.prefix ?? 'lib', name: projectName, projectRoot, entryFile: 'index', moduleName, modulePath, parsedTags, fileName, importPath, ngCliSchematicLibRoot, skipTests: options.unitTestRunner === 'none' ? true : options.skipTests, standaloneComponentName: `${(0, devkit_1.names)(projectNames.projectSimpleName).className}Component`, moduleTypeSeparator, }; const { displayBlock, inlineStyle, inlineTemplate, viewEncapsulation, changeDetection, style, skipTests, selector, skipSelector, flat, ...libraryOptions } = allNormalizedOptions; const componentType = (0, artifact_types_1.getComponentType)(host); return { libraryOptions, componentOptions: { name: fileName, standalone: libraryOptions.standalone, displayBlock, inlineStyle, inlineTemplate, viewEncapsulation, changeDetection, style, skipTests, selector, skipSelector, flat, type: componentType, }, }; }