feat: update render provider
This commit is contained in:
36
pkg/ast/provider/provider.go.tpl
Normal file
36
pkg/ast/provider/provider.go.tpl
Normal file
@@ -0,0 +1,36 @@
|
||||
package {{.PkgName}}
|
||||
|
||||
import (
|
||||
{{- range $pkg, $alias := .Imports }}
|
||||
{{- if eq $alias "" }}
|
||||
"{{$pkg}}"
|
||||
{{- else }}
|
||||
{{$alias}} "{{$pkg}}"
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
)
|
||||
|
||||
func Provide(opts ...opt.Option) error {
|
||||
{{- range .Providers }}
|
||||
if err := container.Container.Provide(func(
|
||||
{{- range $key, $param := .InjectParams }}
|
||||
{{$key}} {{$param.Star}}{{if eq $param.Package ""}}{{$param.Type}}{{else}}{{$param.PackageAlias}}.{{$param.Type}}{{end}},
|
||||
{{- end }}
|
||||
) ({{.ReturnType}}, error) {
|
||||
obj := &{{.StructName}}{
|
||||
{{- range $key, $param := .InjectParams }}
|
||||
{{$key}}: {{$key}},
|
||||
{{- end }}
|
||||
}
|
||||
{{- if .NeedPrepareFunc }}
|
||||
if err := obj.Prepare(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
{{- end }}
|
||||
return obj, nil
|
||||
}{{if .ProviderGroup}}, {{.ProviderGroup}}{{end}}); err != nil {
|
||||
return err
|
||||
}
|
||||
{{- end }}
|
||||
return nil
|
||||
}
|
||||
Reference in New Issue
Block a user