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

42 lines (41 loc) 1.77 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.convertPipeToScam = convertPipeToScam; const js_1 = require("@nx/js"); const ensure_typescript_1 = require("@nx/js/src/utils/typescript/ensure-typescript"); let tsModule; function convertPipeToScam(tree, options) { if (!tree.exists(options.filePath)) { throw new Error(`Couldn't find pipe at path ${options.filePath} to add SCAM setup.`); } if (!tsModule) { tsModule = (0, ensure_typescript_1.ensureTypescript)(); } if (options.inlineScam) { const currentPipeContents = tree.read(options.filePath, 'utf-8'); let source = tsModule.createSourceFile(options.filePath, currentPipeContents, tsModule.ScriptTarget.Latest, true); source = (0, js_1.insertImport)(tree, source, options.filePath, 'NgModule', '@angular/core'); source = (0, js_1.insertImport)(tree, source, options.filePath, 'CommonModule', '@angular/common'); let updatedPipeSource = source.getText(); updatedPipeSource = `${updatedPipeSource}${getNgModuleDeclaration(options.symbolName)}`; tree.write(options.filePath, updatedPipeSource); return; } tree.write(options.modulePath, getModuleFileContent(options.symbolName, options.fileName)); } function getModuleFileContent(pipeClassName, pipeFileName) { return `import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; import { ${pipeClassName} } from './${pipeFileName}'; ${getNgModuleDeclaration(pipeClassName)}`; } function getNgModuleDeclaration(pipeClassName) { return ` @NgModule({ imports: [CommonModule], declarations: [${pipeClassName}], exports: [${pipeClassName}], }) export class ${pipeClassName}Module {} `; }