github.com/segakazzz/buffalo@v0.16.22-0.20210119082501-1f52048d3feb/genny/newapp/api/api.go (about) 1 package api 2 3 import ( 4 "html/template" 5 6 "github.com/gobuffalo/buffalo/genny/newapp/core" 7 "github.com/gobuffalo/genny/v2" 8 "github.com/gobuffalo/genny/v2/gogen" 9 "github.com/gobuffalo/packr/v2" 10 ) 11 12 // New generator for creating a Buffalo API application 13 func New(opts *Options) (*genny.Group, error) { 14 if err := opts.Validate(); err != nil { 15 return nil, err 16 } 17 18 gg, err := core.New(opts.Options) 19 if err != nil { 20 return gg, err 21 } 22 23 g := genny.New() 24 data := map[string]interface{}{ 25 "opts": opts, 26 } 27 28 helpers := template.FuncMap{} 29 30 t := gogen.TemplateTransformer(data, helpers) 31 g.Transformer(t) 32 g.Box(packr.New("buffalo:genny:newapp:api", "../api/templates")) 33 34 gg.Add(g) 35 36 return gg, nil 37 }