59 lines
1.4 KiB
Smarty
59 lines
1.4 KiB
Smarty
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 }}
|
|
{{- if and (ne $key "__job") (ne $key "__event") (ne $key "__grpc")}}
|
|
{{$key}}: {{$key}},
|
|
{{- end}}
|
|
{{- end }}
|
|
}
|
|
{{- if .NeedPrepareFunc }}
|
|
if err := obj.Prepare(); err != nil {
|
|
return nil, err
|
|
}
|
|
{{- end }}
|
|
|
|
{{- if eq .Mode "grpc"}}
|
|
{{ .GrpcRegisterFunc }}(__grpc.Server, obj)
|
|
{{- end }}
|
|
|
|
{{- if eq .Mode "event"}}
|
|
__event.Handle("handler:{{.StructName}}", obj.Topic(), obj.PublishToTopic(), obj.Handler)
|
|
{{- end }}
|
|
|
|
{{- if eq .Mode "job"}}
|
|
if err := river.AddWorkerSafely(__job.Workers, obj); err != nil {
|
|
return nil, err
|
|
}
|
|
{{- end }}
|
|
|
|
{{ if eq .Mode "cronjob" }}
|
|
if _, err := __job.AddPeriodicJobs(obj); err != nil {
|
|
return nil, err
|
|
}
|
|
{{- end}}
|
|
|
|
return obj, nil
|
|
}{{if .ProviderGroup}}, {{.ProviderGroup}}{{end}}); err != nil {
|
|
return err
|
|
}
|
|
{{- end }}
|
|
return nil
|
|
} |