MCPcopy Create free account
hub / github.com/nhost/nhost / Render

Method Render

tools/codegen/processor/intermediate.go:164–199  ·  view source on GitHub ↗
(out io.Writer)

Source from the content-addressed store, hash-verified

162}
163
164func (ir *InterMediateRepresentation) Render(out io.Writer) error {
165 templatesFS := ir.plugin.GetTemplates()
166 // ReadDir to get list of embedded templates
167 entries, err := fs.ReadDir(templatesFS, "templates")
168 if err != nil {
169 return fmt.Errorf("failed to read templates directory: %w", err)
170 }
171
172 var filenames []string
173
174 for _, entry := range entries {
175 if !entry.IsDir() {
176 filenames = append(filenames, "templates/"+entry.Name())
177 }
178 }
179
180 funcs := template.FuncMap{
181 "title": format.Title,
182 "join": strings.Join,
183 "example": templateFnExample,
184 "pattern": templateFnPattern,
185 "format": templateFnFormat,
186 }
187 maps.Copy(funcs, ir.plugin.GetFuncMap())
188
189 tmpl, err := template.New("").Funcs(funcs).ParseFS(templatesFS, filenames...)
190 if err != nil {
191 return fmt.Errorf("failed to parse interface template: %w", err)
192 }
193
194 if err := tmpl.ExecuteTemplate(out, "main.tmpl", ir); err != nil {
195 return fmt.Errorf("failed to execute template: %w", err)
196 }
197
198 return nil
199}
200
201type getSchemaer interface {
202 Schema() *base.SchemaProxy

Callers 2

actionFunction · 0.95

Calls 4

ErrorfMethod · 0.80
GetTemplatesMethod · 0.65
NameMethod · 0.65
GetFuncMapMethod · 0.65

Tested by 1