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

45 lines (44 loc) 1.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.replaceAppNameWithPath = replaceAppNameWithPath; function replaceAppNameWithPath(node, appName, root) { if (typeof node === 'string') { const matchPattern = new RegExp(`([^a-z0-9]*(${appName}))|((${appName})[^a-z0-9:]*)`, 'gi'); if (!!node.match(matchPattern) && node !== 'application' && node !== 'library') { const r = node.replace(appName, root); return r.startsWith('/apps') || r.startsWith('/libs') ? r.substring(1) : r; } else { return node; } } else if (Array.isArray(node)) { return node.map((j) => replaceAppNameWithPath(j, appName, root)); } else if (typeof node === 'object' && node) { const forbiddenPropertyList = [ 'prefix', 'builder', 'executor', 'browserTarget', 'tags', 'defaultConfiguration', 'maximumError', 'name', 'type', 'outputHashing', 'buildTarget', ]; // Some of the properties should not be renamed return Object.keys(node).reduce((m, c) => ((m[c] = !forbiddenPropertyList.includes(c) ? replaceAppNameWithPath(node[c], appName, root) : node[c]), m), {}); } else { return node; } }