working and no errors on front or back ends

This commit is contained in:
2021-07-08 03:15:36 -05:00
parent 9869125965
commit 7b18b0842a
12 changed files with 157 additions and 41 deletions

View File

@ -1,6 +1,6 @@
import {ComponentDef, EndpointDef, SystemDef} from "../systemGenService";
import path from "path";
import {initializeComponentFile, removeTemplateFiles} from "../helpers";
import {initializeComponentFile, removeTemplateFiles, removeTemplateFolder, uppercaseFirstLetter} from "../helpers";
import fs from "fs";
import {buildServiceFunctionName, getFuncParams} from "../views/service-creator";
import {METHOD, URL} from "../views/routes-creator";
@ -10,17 +10,20 @@ import {buildEditorView} from "./editor-view-builder";
import {buildTypesView} from "./types-view-builder";
const ncp = require('ncp').ncp;
export function createFrontend(systemDef: SystemDef): Promise<void[]> {
export function createFrontend(systemDef: SystemDef): Promise<void> {
let fePromises = [];
for (let i in systemDef.components) {
fePromises.push(createComponent(systemDef.components[i], systemDef));
fePromises.push(createComponent(systemDef.components[i], 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[]) => {
removeTemplateFiles(componentSource())
return res;
return removeTemplateFolder(componentDestination(systemDef.name, '{{component}}')).catch((err) => {
console.log(err);
});
});
}
@ -131,17 +134,21 @@ function createFEServiceFunc(view: EndpointDef): string {
if (method === 'delete') {
method = 'del';
}
let addTypeDeclaration = method === 'get' || method === 'post';
let useList = view.type === 'list' || view.type === 'search';
let url = URL[view.type](view).replace(':' + view.component + '_id', '\' + ' + view.component + '_id');
let isUpdateOrCreate = view.type === 'update' || view.type === 'create';
func = `
public ${funcName}(${funcParams.join(', ')}) {`;
public ${funcName}(${view.type === 'update' ? view.component + '_id: string, ': ''}${isUpdateOrCreate ? 'params: ' + uppercaseFirstLetter(view.component) + 'Config' : funcParams.join(', ')}) {`;
if (!isGetOrDelete) {
if (!isGetOrDelete && !isUpdateOrCreate) {
func = func + `
let params = {${columnParams}${columnParams.length ? ',' : ''}${filterParams}
};`;
}
func = func + `
return ${method}('/api/v1/${URL[view.type](view)}${isGetOrDelete ? '/\' + ' + funcParams[0].split(":")[0] : '\', params'});
return ${method}${addTypeDeclaration ? '<' + uppercaseFirstLetter(view.component) + 'Config' + (useList ? '[]' : '') + '>': ''}('/api/v1/${url}${isGetOrDelete ? '' : (view.type === 'update' ? ', params' : '\', params')});
}
`;
return func;