Skip to content

Commit 5d15992

Browse files
committed
refactor: createTwMerge doesn't build configuration when called but rather when first call to merge is made
1 parent daef21d commit 5d15992

File tree

1 file changed

+32
-13
lines changed

1 file changed

+32
-13
lines changed

pkg/twmerge/create-tailwind-merge.go

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,24 +3,20 @@ package twmerge
33
import (
44
"strings"
55

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"
78
)
89

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
1611

17-
splitModifiers := MakeSplitModifiers(config)
12+
func CreateTwMerge(config *TwMergeConfig, cache cache.ICache) TwMergeFn {
1813

19-
getClassGroupId := MakeGetClassGroupId(config)
14+
var fnToCall TwMergeFn
15+
var splitModifiers SplitModifiersFn
16+
var getClassGroupId GetClassGroupIdfn
17+
var mergeClassList func(classList string) string
2018

21-
mergeClassList := MakeMergeClassList(config, splitModifiers, getClassGroupId)
22-
23-
return func(args ...string) string {
19+
merger := func(args ...string) string {
2420
classList := strings.Join(args, " ")
2521
cached := cache.Get(classList)
2622
if cached != "" {
@@ -31,6 +27,29 @@ func CreateTwMerge(config *TwMergeConfig, cache lru.Cache) func(args ...string)
3127
cache.Set(classList, merged)
3228
return merged
3329
}
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+
}
3453
}
3554

3655
var Merge = CreateTwMerge(nil, nil)

0 commit comments

Comments
 (0)