@@ -3,24 +3,20 @@ package twmerge
3
3
import (
4
4
"strings"
5
5
6
- lru "github.com/Oudwins/tailwind-merge-go/pkg/cache"
6
+ cache "github.com/Oudwins/tailwind-merge-go/pkg/cache"
7
+ lru "github.com/Oudwins/tailwind-merge-go/pkg/lru"
7
8
)
8
9
9
- func CreateTwMerge (config * TwMergeConfig , cache lru.Cache ) func (args ... string ) string {
10
- if config == nil {
11
- config = MakeDefaultConfig ()
12
- }
13
- if cache == nil {
14
- cache = lru .Make (config .MaxCacheSize )
15
- }
10
+ type TwMergeFn func (args ... string ) string
16
11
17
- splitModifiers := MakeSplitModifiers (config )
12
+ func CreateTwMerge (config * TwMergeConfig , cache cache. ICache ) TwMergeFn {
18
13
19
- getClassGroupId := MakeGetClassGroupId (config )
14
+ var fnToCall TwMergeFn
15
+ var splitModifiers SplitModifiersFn
16
+ var getClassGroupId GetClassGroupIdfn
17
+ var mergeClassList func (classList string ) string
20
18
21
- mergeClassList := MakeMergeClassList (config , splitModifiers , getClassGroupId )
22
-
23
- return func (args ... string ) string {
19
+ merger := func (args ... string ) string {
24
20
classList := strings .Join (args , " " )
25
21
cached := cache .Get (classList )
26
22
if cached != "" {
@@ -31,6 +27,29 @@ func CreateTwMerge(config *TwMergeConfig, cache lru.Cache) func(args ...string)
31
27
cache .Set (classList , merged )
32
28
return merged
33
29
}
30
+
31
+ init := func (args ... string ) string {
32
+ if config == nil {
33
+ config = MakeDefaultConfig ()
34
+ }
35
+ if cache == nil {
36
+ cache = lru .Make (config .MaxCacheSize )
37
+ }
38
+
39
+ splitModifiers = MakeSplitModifiers (config )
40
+
41
+ getClassGroupId = MakeGetClassGroupId (config )
42
+
43
+ mergeClassList = MakeMergeClassList (config , splitModifiers , getClassGroupId )
44
+
45
+ fnToCall = merger
46
+ return fnToCall (args ... )
47
+ }
48
+
49
+ fnToCall = init
50
+ return func (args ... string ) string {
51
+ return fnToCall (args ... )
52
+ }
34
53
}
35
54
36
55
var Merge = CreateTwMerge (nil , nil )
0 commit comments