UNPKG

@core-rc/cssinjs-utils

Version:

A cssinjs util library to support @core-rc and its ecosystem libraries.

28 lines (27 loc) 1.17 kB
import { warning } from 'rc-util'; function getComponentToken(component, token, defaultToken, options) { const customToken = { ...token[component], }; if (options?.deprecatedTokens) { const { deprecatedTokens } = options; deprecatedTokens.forEach(([oldTokenKey, newTokenKey]) => { if (process.env.NODE_ENV !== 'production') { warning(!customToken?.[oldTokenKey], `Component Token \`${String(oldTokenKey)}\` of ${String(component)} is deprecated. Please use \`${String(newTokenKey)}\` instead.`); } // Should wrap with `if` clause, or there will be `undefined` in object. if (customToken?.[oldTokenKey] || customToken?.[newTokenKey]) { customToken[newTokenKey] ??= customToken?.[oldTokenKey]; } }); } const mergedToken = { ...defaultToken, ...customToken }; // Remove same value as global token to minimize size Object.keys(mergedToken).forEach((key) => { if (mergedToken[key] === token[key]) { delete mergedToken[key]; } }); return mergedToken; } export default getComponentToken;