Files
NapCatQQ/.pnpm-store/v3/files/ad/dbca99cee3067c17c7a88726970252777d7b86afea0324db903c0e80313855f624be5618eb20bb6b7ddbe65e0025a280edf31fde9516a6f4f8da10393fb3b0
TanTan e311ca3275
Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

52 lines
1.6 KiB
Plaintext

import { createConfigUtils } from './config-utils'
import { mergeClassList } from './merge-classlist'
import { ClassNameValue, twJoin } from './tw-join'
import { Config } from './types'
type CreateConfigFirst = () => Config
type CreateConfigSubsequent = (config: Config) => Config
type TailwindMerge = (...classLists: ClassNameValue[]) => string
type ConfigUtils = ReturnType<typeof createConfigUtils>
export function createTailwindMerge(
...createConfig: [CreateConfigFirst, ...CreateConfigSubsequent[]]
): TailwindMerge {
let configUtils: ConfigUtils
let cacheGet: ConfigUtils['cache']['get']
let cacheSet: ConfigUtils['cache']['set']
let functionToCall = initTailwindMerge
function initTailwindMerge(classList: string) {
const [firstCreateConfig, ...restCreateConfig] = createConfig
const config = restCreateConfig.reduce(
(previousConfig, createConfigCurrent) => createConfigCurrent(previousConfig),
firstCreateConfig(),
)
configUtils = createConfigUtils(config)
cacheGet = configUtils.cache.get
cacheSet = configUtils.cache.set
functionToCall = tailwindMerge
return tailwindMerge(classList)
}
function tailwindMerge(classList: string) {
const cachedResult = cacheGet(classList)
if (cachedResult) {
return cachedResult
}
const result = mergeClassList(classList, configUtils)
cacheSet(classList, result)
return result
}
return function callTailwindMerge() {
return functionToCall(twJoin.apply(null, arguments as any))
}
}