@nx/angular
Version:
84 lines (81 loc) • 2.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getAppConfig = getAppConfig;
exports.getLibConfig = getLibConfig;
exports.createApp = createApp;
exports.createLib = createLib;
const devkit_1 = require("@nx/devkit");
var appConfig; // configure built in createApp()
var libConfig;
function getAppConfig() {
return appConfig;
}
function getLibConfig() {
return libConfig;
}
function createApp(tree, appName, routing = true) {
appName = (0, devkit_1.names)(appName).fileName;
// save for getAppDir() lookup by external *.spec.ts tests
appConfig = {
appName,
appModule: `${appName}/src/app/app-module.ts`,
};
tree.write(appConfig.appModule, `import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
${routing ? "import { RouterModule } from '@angular/router'" : ''};
import { App } from './app';
@NgModule({
imports: [BrowserModule, ${routing ? 'RouterModule.forRoot([])' : ''}],
declarations: [App],
bootstrap: [App]
})
export class AppModule {}
`);
tree.write(`${appName}/src/main.ts`, `import { platformBrowser } from '@angular/platform-browser';
import { AppModule } from './app/app-module';
platformBrowser()
.bootstrapModule(AppModule)
.catch(err => console.log(err));
`);
tree.write(`${appName}/tsconfig.app.json`, JSON.stringify({
include: ['**/*.ts'],
}));
tree.write(`${appName}-e2e/tsconfig.e2e.json`, JSON.stringify({
include: ['../**/*.ts'],
}));
(0, devkit_1.addProjectConfiguration)(tree, appName, {
root: `${appName}`,
sourceRoot: `${appName}/src`,
targets: {
build: {
options: {
main: `${appName}/src/main.ts`,
},
},
serve: {
options: {},
},
},
tags: [],
});
}
function createLib(tree, libName) {
const { name, className, fileName, propertyName } = (0, devkit_1.names)(libName);
libConfig = {
name,
module: `${propertyName}/src/lib/${fileName}-module.ts`,
barrel: `${propertyName}/src/index.ts`,
};
tree.write(libConfig.module, `import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
@NgModule({
imports: [
CommonModule
],
providers: []
})
export class ${className}Module { }
`);
tree.write(libConfig.barrel, `export * from './lib/${fileName}-module';
`);
}