2026-02-21 15:32:23 +00:00
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"flag"
|
2026-03-30 01:07:12 +00:00
|
|
|
"os"
|
2026-03-26 13:27:06 +00:00
|
|
|
|
|
|
|
|
core "dappco.re/go/core"
|
2026-02-21 15:32:23 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
specPath := flag.String("spec", "testdata/swagger.v1.json", "path to swagger.v1.json")
|
|
|
|
|
outDir := flag.String("out", "types", "output directory for generated types")
|
|
|
|
|
flag.Parse()
|
|
|
|
|
|
2026-03-30 01:07:12 +00:00
|
|
|
if err := run(*specPath, *outDir); err != nil {
|
|
|
|
|
core.Print(os.Stderr, "forgegen: %v", err)
|
|
|
|
|
os.Exit(1)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func run(specPath, outDir string) error {
|
|
|
|
|
spec, err := LoadSpec(specPath)
|
2026-02-21 15:32:23 +00:00
|
|
|
if err != nil {
|
2026-03-30 01:07:12 +00:00
|
|
|
return core.E("forgegen.main", "load spec", err)
|
2026-02-21 15:32:23 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
types := ExtractTypes(spec)
|
|
|
|
|
pairs := DetectCRUDPairs(spec)
|
|
|
|
|
|
2026-03-26 18:00:20 +00:00
|
|
|
core.Print(nil, "Loaded %d types, %d CRUD pairs", len(types), len(pairs))
|
2026-03-30 01:07:12 +00:00
|
|
|
core.Print(nil, "Output dir: %s", outDir)
|
2026-02-21 15:32:23 +00:00
|
|
|
|
2026-03-30 01:07:12 +00:00
|
|
|
if err := Generate(types, pairs, outDir); err != nil {
|
|
|
|
|
return core.E("forgegen.main", "generate types", err)
|
2026-02-21 15:32:23 +00:00
|
|
|
}
|
2026-03-30 01:07:12 +00:00
|
|
|
return nil
|
2026-02-21 15:32:23 +00:00
|
|
|
}
|