func New()

in secretcache/cache.go [38:72]


func New(optFns ...func(*Cache)) (*Cache, error) {

	cache := &Cache{
		//Initialise default configuration
		CacheConfig: CacheConfig{
			MaxCacheSize: DefaultMaxCacheSize,
			VersionStage: DefaultVersionStage,
			CacheItemTTL: DefaultCacheItemTTL,
		},
	}

	// Iterate over options allowing user to specify alternate
	// configurations.
	for _, optFn := range optFns {
		optFn(cache)
	}

	//Initialise lru cache
	cache.lru = newLRUCache(cache.MaxCacheSize)

	//Initialise the secrets manager client
	if cache.Client == nil {
		cfg, err := config.LoadDefaultConfig(context.Background(), config.WithAPIOptions([]func(*smithymiddleware.Stack) error{
			middleware.AddUserAgentKey(userAgent()),
		}))

		if err != nil {
			return nil, err
		}

		cache.Client = secretsmanager.NewFromConfig(cfg)
	}

	return cache, nil
}