get frontend code generating and usable

This commit is contained in:
2025-02-22 17:08:26 -07:00
parent 6a8a4a13ba
commit 9fe376d3ea
101 changed files with 16455 additions and 37 deletions

View File

@ -50,6 +50,9 @@ var iconHomeTemplate string
//go:embed templates/vue/IconGear.vue.tmpl
var iconGearTemplate string
//go:embed templates/vue/fetch-rpc.ts.tmpl
var fetchRPCTemplate string
func setupWebapp(name string) error {
fmt.Println("Setting up webapp with Vue 3, TypeScript, Vue Router, Pinia, and ESLint with Prettier")
cmd := exec.Command("npm", "create", "vue@latest", "--", "--ts", "--router", "--pinia", "--eslint-with-prettier", name)
@ -109,6 +112,18 @@ func setupWebapp(name string) error {
return fmt.Errorf("error creating layouts directory | %w", err)
}
// make sure "src/services/" exists
err = os.Mkdir("src/services", 0755)
if err != nil {
return fmt.Errorf("error creating services directory | %w", err)
}
// make sure "src/generated/" exists
err = os.Mkdir("src/generated", 0755)
if err != nil {
return fmt.Errorf("error creating generated directory | %w", err)
}
// create a new about view from the aboutViewTemplate
err = os.WriteFile("src/views/AboutView.vue", []byte(aboutViewTemplate), 0644)
if err != nil {
@ -153,6 +168,7 @@ func setupWebapp(name string) error {
{iconArrowFromShapeRightTemplate, "src/components/icons/IconArrowFromShapeRight.vue"},
{iconHomeTemplate, "src/components/icons/IconHome.vue"},
{iconGearTemplate, "src/components/icons/IconGear.vue"},
{fetchRPCTemplate, "src/services/fetch-rpc.ts"},
}
for _, srcDest := range straightCopies {
@ -162,6 +178,12 @@ func setupWebapp(name string) error {
}
}
cmd = exec.Command("npm", "install", "openapi-typescript-codegen", "--save-dev")
err = cmd.Run()
if err != nil {
return fmt.Errorf("error installing openapi-typescript-codegen | %w", err)
}
fmt.Println("Exiting the new directory")
err = os.Chdir("..")
if err != nil {