github.com/ronaksoft/rony@v0.16.26-0.20230807065236-1743dbfe6959/di/di.go (about)

     1  package di
     2  
     3  import (
     4  	"go.uber.org/dig"
     5  )
     6  
     7  var (
     8  	di = dig.New()
     9  )
    10  
    11  func New() *Container {
    12  	return dig.New()
    13  }
    14  
    15  func Provide(constructor interface{}, opt ...ProvideOption) error {
    16  	return di.Provide(constructor, opt...)
    17  }
    18  
    19  func MustProvide(constructor interface{}, opt ...ProvideOption) {
    20  	if err := di.Provide(constructor, opt...); err != nil {
    21  		panic(err)
    22  	}
    23  }
    24  
    25  func Invoke(function interface{}) error {
    26  	return di.Invoke(function)
    27  }
    28  
    29  func MustInvoke(function interface{}) {
    30  	if err := di.Invoke(function); err != nil {
    31  		panic(err)
    32  	}
    33  }