add frontend frame and service logic

This commit is contained in:
2021-07-03 00:41:03 -05:00
parent 87312fbc86
commit be789ae882
49 changed files with 10019 additions and 65 deletions

46
src/helpers.ts Normal file
View File

@ -0,0 +1,46 @@
import fs from "fs";
import {EndpointDef} from "./systemGenService";
import path from "path";
import {createServiceFunc} from "./views/service-creator";
function uppercaseFirstLetter(input: string) {
return input.charAt(0).toUpperCase() + input.slice(1);
}
function lowercaseFirstLetter(input: string) {
return input.charAt(0).toLowerCase() + input.slice(1);
}
function initializeComponentFile(sourceFile: string, destinationFile: string, component: string, outDir: string) {
return new Promise<void>((resolve, reject) => {
fs.rename(sourceFile, destinationFile, (err: any) => {
let fileContents = fs.readFileSync(destinationFile, 'utf8');
var uppercaseFirstLetterComponentName = uppercaseFirstLetter(component);
var lowercaseFirstLetterComponentName = lowercaseFirstLetter(component);
let newFileContents = fileContents.split('{{Component}}').join(uppercaseFirstLetterComponentName);
newFileContents = newFileContents.split('{{component}}').join(lowercaseFirstLetterComponentName);
fs.writeFileSync(destinationFile, newFileContents, 'utf8');
resolve();
});
})
}
function insertServiceCode(view: EndpointDef, outDir: string): Promise<void> {
return new Promise<void>((resolve) => {
const separator: string = `// SYSTEM-BUILDER-${view.component}-service`;
let fileLocation = path.join(process.cwd(), outDir, 'src', 'components', view.component, `${view.component}Service.ts`);
let initServiceFile: string = fs.readFileSync(fileLocation, 'utf8');
let parts = initServiceFile.split(separator);
parts[0] = parts[0] + createServiceFunc(view);
let newServiceFile = parts.join(separator);
fs.writeFileSync(fileLocation, newServiceFile, 'utf8');
resolve();
});
}
export {
uppercaseFirstLetter,
lowercaseFirstLetter,
initializeComponentFile,
insertServiceCode
}