angular15-generator
Version:
CLI tool to generate Angular 1.5 w/ TypeScript Routes and Components like Angular 2 CLI
42 lines (30 loc) • 1.54 kB
JavaScript
;
let fse = require('fs-extra');
let path = require('path');
let filterTplt = require('./templates/component/filter').filterTemplate;
let filterSpecTplt = require('./templates/component/filterSpec').filterSpecTemplate;
let StringUtil = require('../utils/stringUtil');
let PathUtil = require('../utils/pathUtil');
class FilterGenerator {
constructor(filterName, config, rootIndexGenerator) {
let filterNameWithoutPath = PathUtil.stripPathIfPResent(filterName);
this.capitalizedName = StringUtil.capitalizeFirstLetter(filterNameWithoutPath);
this.lowerCaseName = filterNameWithoutPath.toLowerCase();
this.config = config;
this.rootIndexGenerator = rootIndexGenerator;
this.filePath = path.join(path.normalize(this.config.getFiltersRoot()), filterName.toLowerCase());
fse.mkdirsSync(this.filePath);
}
buildFilter() {
fse.writeFileSync(path.join(this.filePath, `${this.lowerCaseName}.filter.ts`), filterTplt(this.lowerCaseName));
fse.writeFileSync(path.join(this.filePath, `${this.lowerCaseName}.filter_spec.ts`), filterSpecTplt(this.lowerCaseName));
}
updateOrCreateRootModule(updateOrCreate) {
if (updateOrCreate === true) {
let rootModuleName = this.config.getFiltersRootModuleName();
let fileDataComplete = this.rootIndexGenerator.getRootFileDataWithNewFilter(this.config.getFiltersRoot(), rootModuleName);
fse.writeFileSync(path.join(this.config.getFiltersRoot(), rootModuleName), fileDataComplete);
}
}
}
module.exports = FilterGenerator;