add router and View links

This commit is contained in:
2021-07-16 00:03:24 -06:00
parent 7514dc03da
commit 9253a84d7e
5 changed files with 84 additions and 57 deletions

View File

@ -1,6 +1,12 @@
import {ComponentDef, EndpointDef, SystemDef} from "../systemGenService";
import path from "path";
import {initializeComponentFile, removeTemplateFiles, removeTemplateFolder, uppercaseFirstLetter} from "../helpers";
import {
componentDestination,
initializeComponentFile,
removeTemplateFiles,
removeTemplateFolder,
uppercaseFirstLetter
} from "../helpers";
import fs from "fs";
import {buildServiceFunctionName, getFuncParams} from "../views/service-creator";
import {METHOD, URL} from "../views/routes-creator";
@ -8,16 +14,23 @@ import {buildDetailsView} from "./details-view-builder";
import {buildListView} from "./list-view-builder";
import {buildEditorView} from "./editor-view-builder";
import {buildTypesView} from "./types-view-builder";
import {buildRoute} from "./route-view-builder";
import {buildAppLinks} from "./app-view-builder";
const ncp = require('ncp').ncp;
export function createFrontend(systemDef: SystemDef): Promise<void> {
let fePromises = [];
for (let i in systemDef.components) {
fePromises.push(createComponent(systemDef.components[i], systemDef).then(() => {
// build app router logic
return buildRoute(systemDef.components[i], componentDestination(systemDef.name, systemDef.components[i].component), systemDef);
}).then(() => {
// add a vue view and add it to App.vue
return buildAppLinks(systemDef.components[i], componentDestination(systemDef.name, systemDef.components[i].component), systemDef);
}).then(() => {
return removeTemplateFiles(componentDestination(systemDef.name, systemDef.components[i].component));
}));
// TODO: add a vue view and add it to App.vue
// TODO: build app router logic
}
// TODO: after all is done clean up the template files
return Promise.all(fePromises).then((res: void[]) => {
@ -31,9 +44,7 @@ function componentSource() {
return path.join(process.cwd(), 'frontend-frame', 'src', 'components', '{{component}}');
}
function componentDestination(systemDefName: string, componentName: string) {
return path.join(process.cwd(), `frontend-${systemDefName}`, 'src', 'components', componentName);
}
function createComponent(component: ComponentDef, systemDef: SystemDef) {
return new Promise<void>((componentResolve, componentReject) => {