github.com/seeker-insurance/kit@v0.0.13/assets/assets.go (about)

     1  package assets
     2  
     3  import (
     4  	"github.com/seeker-insurance/kit/errorlib"
     5  )
     6  
     7  type (
     8  	AssetGet     func(string) ([]byte, error)
     9  	AssetDir     func(string) ([]string, error)
    10  	AssetManager struct {
    11  		Get AssetGet
    12  		Dir AssetDir
    13  	}
    14  )
    15  
    16  const (
    17  	ErrManagerNotSet errorlib.ErrorString = "asset manager is not set"
    18  	ErrNoGetFunc     errorlib.ErrorString = "asset manager has no get func"
    19  	ErrNoDirFunc     errorlib.ErrorString = "asset manager has no dir func"
    20  )
    21  
    22  var Manager *AssetManager
    23  
    24  // Get retrieve static asset from client project data directory. This allows code in kit to use client project data dir
    25  func Get(name string) ([]byte, error) {
    26  	if Manager == nil {
    27  		return nil, ErrManagerNotSet
    28  	} else if Manager.Get == nil {
    29  		return nil, ErrNoGetFunc
    30  	}
    31  
    32  	return Manager.Get(name)
    33  }
    34  
    35  func Dir(name string) ([]string, error) {
    36  	if Manager == nil {
    37  		return nil, ErrManagerNotSet
    38  	} else if Manager.Dir == nil {
    39  		return nil, ErrNoDirFunc
    40  	}
    41  
    42  	return Manager.Dir(name)
    43  }