forked from cshum/imagor
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathoption.go
106 lines (90 loc) · 1.81 KB
/
option.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
package imagor
import (
"go.uber.org/zap"
"time"
)
type Option func(o *Imagor)
func WithLogger(logger *zap.Logger) Option {
return func(o *Imagor) {
if logger != nil {
o.Logger = logger
}
}
}
func WithLoaders(loaders ...Loader) Option {
return func(o *Imagor) {
o.Loaders = append(o.Loaders, loaders...)
}
}
func WithSavers(savers ...Saver) Option {
return func(o *Imagor) {
o.Savers = append(o.Savers, savers...)
}
}
func WithResultLoaders(loaders ...Loader) Option {
return func(o *Imagor) {
o.ResultLoaders = append(o.ResultLoaders, loaders...)
}
}
func WithResultSavers(savers ...Saver) Option {
return func(o *Imagor) {
o.ResultSavers = append(o.ResultSavers, savers...)
}
}
func WithProcessors(processors ...Processor) Option {
return func(o *Imagor) {
o.Processors = append(o.Processors, processors...)
}
}
func WithRequestTimeout(timeout time.Duration) Option {
return func(o *Imagor) {
if timeout > 0 {
o.RequestTimeout = timeout
}
}
}
func WithCacheHeaderTTL(ttl time.Duration) Option {
return func(o *Imagor) {
if ttl > 0 {
o.CacheHeaderTTL = ttl
} else if ttl == -1 {
o.CacheHeaderTTL = 0
}
}
}
func WithLoadTimeout(timeout time.Duration) Option {
return func(o *Imagor) {
if timeout > 0 {
o.LoadTimeout = timeout
}
}
}
func WithSaveTimeout(timeout time.Duration) Option {
return func(o *Imagor) {
if timeout > 0 {
o.SaveTimeout = timeout
}
}
}
func WithProcessTimeout(timeout time.Duration) Option {
return func(o *Imagor) {
if timeout > 0 {
o.ProcessTimeout = timeout
}
}
}
func WithUnsafe(unsafe bool) Option {
return func(o *Imagor) {
o.Unsafe = unsafe
}
}
func WithSecret(secret string) Option {
return func(o *Imagor) {
o.Secret = secret
}
}
func WithDebug(debug bool) Option {
return func(o *Imagor) {
o.Debug = debug
}
}