diff --git a/generation/scheme.go b/generation/scheme.go
index e65474b..714df5f 100644
--- a/generation/scheme.go
+++ b/generation/scheme.go
@@ -9,14 +9,14 @@ import (
)
func GenerateScheme(structName string, fields []entities.Field, mkPath string) {
- schemeFile, err := os.Create(mkPath + "/" + strings.ToTitle(structName) + "Scheme.vue")
+ schemeFile, err := os.Create(mkPath + "/" + strings.ToUpper(structName[:1]) + strings.ToLower(structName[1:]) + "Scheme.vue")
if err != nil {
panic(err)
}
defer schemeFile.Close()
_, err = schemeFile.WriteString(fmt.Sprintf(
`
-
-`, strings.ToLower(structName), structName, utils.GetServiceStructType(structName), GenerateFields(fields)))
+`, strings.ToLower(structName), structName, utils.GetServiceStructType(structName), LoadDependencies(fields), structName, GenerateFields(fields)))
if err != nil {
panic(err)
}
@@ -51,7 +47,39 @@ getDefaults = () => getDefaultValues(scheme)
func GenerateFields(fields []entities.Field) string {
result := "{\n"
for _, field := range fields {
- result += field.Generate() + ", \n"
+ result += field.Name + ":" + field.Generate() + ", \n"
}
return result + "\n}"
+}
+
+func LoadDependencies(fields []entities.Field) string {
+ type Dependency struct{
+ fieldName string
+ dependencyName string
+ }
+
+ result := ""
+ dependencies := []Dependency{}
+ for _, field := range fields {
+ for _, meta := range field.Medatada {
+ if meta.Name == "data" {
+ dependency := meta.Values[0]
+ dependencies = append(dependencies, Dependency{
+ fieldName: field.Name,
+ dependencyName: dependency,
+ })
+ result += fmt.Sprintf("import %sService from '../%s/%s.service.ts'\n", dependency, strings.ToUpper(dependency[:1]) + strings.ToLower(dependency[1:]), strings.ToLower(dependency))
+ result += fmt.Sprintf("const %sService = new %sService\n", strings.ToLower(dependency), strings.ToUpper(dependency[:1]) + strings.ToLower(dependency[1:]))
+ }
+ }
+ }
+ insertIntoScheme := ""
+ for _, dep := range dependencies {
+ insertIntoScheme += fmt.Sprintf("scheme.%s.type!.nested!.values = await %sService.readAll()\n", dep.fieldName, strings.ToLower(dep.dependencyName))
+ }
+
+ result += fmt.Sprintf(`onMounted(async () => {
+ %s
+})` + "\n", insertIntoScheme)
+ return result
}
\ No newline at end of file
diff --git a/main.go b/main.go
index 4928e70..a8b776a 100644
--- a/main.go
+++ b/main.go
@@ -1,9 +1,8 @@
package main
import (
- "fmt"
input "nto_cli/cmd"
- // "nto_cli/generation"
+ "nto_cli/generation"
"nto_cli/utils"
"os"
)
@@ -17,9 +16,6 @@ func main() {
defer file.Close()
structFields := utils.GetStructFields(file, structName)
- for _, field := range structFields {
- fmt.Println(field.Generate())
- }
- // generation.Generate(structName, structFields)
+ generation.Generate(structName, structFields)
}