@nx/angular
Version:
63 lines (62 loc) • 3.36 kB
JavaScript
;
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`));
}
}