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  }