leds-spark-lib
Version:
Biblioteca de geração de código
30 lines • 1.43 kB
JavaScript
import SEON from "seon-lib-implementation";
import { ProjectGenerator } from "./ProjectGenerator.js";
import { isAttribute, isLocalEntity, isModule } from "./backend/models/model.js";
export function generate(model, target_folder) {
const project = new ProjectGenerator(translate(model));
project.generate(target_folder);
}
export function translate(model) {
const softwareName = model.configuration?.name ?? "";
const softwareDescription = model.configuration?.description ?? "";
const packagesList = [];
for (const absElem of model.abstractElements) {
if (isModule(absElem)) {
for (const elem of absElem.elements) {
if (isLocalEntity(elem)) {
const listAttr = [];
for (const attr of elem.attributes) {
if (isAttribute(attr)) {
listAttr.push(new SEON.TypeScriptAttribute(attr.name, new SEON.PrimitiveTypeAbstraction(attr.type.toString())));
}
}
const cls = new SEON.ClassAbstraction(elem.name, [], listAttr);
packagesList.push(new SEON.PackageAbstraction(elem.name, [cls], []));
}
}
}
}
return new SEON.ProjectAbstraction(softwareName, softwareDescription, SEON.vueModularArchProjectSettings, packagesList);
}
//# sourceMappingURL=generate.js.map