import { classify } from '@angular-devkit/core/src/utils/strings'; import { Rule, SchematicContext, Tree, url, apply, mergeWith, renameTemplateFiles, template, move } from '@angular-devkit/schematics'; import { Project } from '@vmfvmf/ywtc-lib'; import { getPrjSrd } from '../../router.gen'; export function gen(newPrj: Project): Rule { return async (tree: Tree, _context: SchematicContext) => { let prjConfig = newPrj.config; prjConfig.sharedConfig.frontendPort = (4200 + newPrj.id).toString(); prjConfig.sharedConfig.backendPort = (8080 + newPrj.id).toString(); const projcetDir = tree.getDir(`ywtc-output/${getPrjSrd().prjNDashd}-frontend`); prjConfig.databaseConfig.user = prjConfig.databaseConfig.dbName + '_user'; prjConfig.databaseConfig.psw = '12345678'; const sourceTemplates = url('../../../src/frontend/new/files'); const appSource = apply(sourceTemplates, [ renameTemplateFiles(), template({...prjConfig, ...prjConfig.sharedConfig, ...getPrjSrd(), classify}), move(projcetDir.path) ]); return mergeWith(appSource); }; }