migrateArbitraryVariants() — tailwindcss Function Reference
Architecture documentation for the migrateArbitraryVariants() function in migrate-arbitrary-variants.ts from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD bc19ae8d_4f83_e280_be05_e35eee14b3e7["migrateArbitraryVariants()"] dfcf938d_abe9_684f_720a_29a0a1797759["migrate-arbitrary-variants.ts"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|defined in| dfcf938d_abe9_684f_720a_29a0a1797759 81ec8f98_1fb2_d7c3_dd65_3a9e51b3be39["prepareDesignSystemStorage()"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| 81ec8f98_1fb2_d7c3_dd65_3a9e51b3be39 f29ee016_da0a_a564_1658_fedaaac680b6["cloneCandidate()"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| f29ee016_da0a_a564_1658_fedaaac680b6 02a5a469_a54f_7532_8b33_d407c3c7f34a["printVariant()"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| 02a5a469_a54f_7532_8b33_d407c3c7f34a 7ba77268_84c7_7083_8f22_251a4a791d25["parseVariant()"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| 7ba77268_84c7_7083_8f22_251a4a791d25 171d2039_b637_0b5d_5082_71ca42e05d86["replaceObject()"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| 171d2039_b637_0b5d_5082_71ca42e05d86 87ba7eab_3a52_d53e_dfd4_e507e9763b55["printCandidate()"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| 87ba7eab_3a52_d53e_dfd4_e507e9763b55 ef9ad758_33f4_0d23_fff8_8eeaf71d00d8["parseCandidate()"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| ef9ad758_33f4_0d23_fff8_8eeaf71d00d8 ca4a0b1a_7c06_9648_ae90_2860010811a5["walkVariants()"] bc19ae8d_4f83_e280_be05_e35eee14b3e7 -->|calls| ca4a0b1a_7c06_9648_ae90_2860010811a5 style bc19ae8d_4f83_e280_be05_e35eee14b3e7 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/@tailwindcss-upgrade/src/codemods/template/migrate-arbitrary-variants.ts lines 13–51
export function migrateArbitraryVariants(
baseDesignSystem: DesignSystem,
_userConfig: Config | null,
rawCandidate: string,
): string {
let designSystem = prepareDesignSystemStorage(baseDesignSystem)
let signatures = designSystem.storage[VARIANT_SIGNATURE_KEY]
let variants = designSystem.storage[PRE_COMPUTED_VARIANTS_KEY]
for (let readonlyCandidate of designSystem.parseCandidate(rawCandidate)) {
// We are only interested in the variants
if (readonlyCandidate.variants.length <= 0) return rawCandidate
// The below logic makes use of mutation. Since candidates in the
// DesignSystem are cached, we can't mutate them directly.
let candidate = cloneCandidate(readonlyCandidate) as Writable<typeof readonlyCandidate>
for (let [variant] of walkVariants(candidate)) {
if (variant.kind === 'compound') continue
let targetString = designSystem.printVariant(variant)
let targetSignature = signatures.get(targetString)
if (typeof targetSignature !== 'string') continue
let foundVariants = variants.get(targetSignature)
if (foundVariants.length !== 1) continue
let foundVariant = foundVariants[0]
let parsedVariant = designSystem.parseVariant(foundVariant)
if (parsedVariant === null) continue
replaceObject(variant, parsedVariant)
}
return designSystem.printCandidate(candidate)
}
return rawCandidate
}
Domain
Subdomains
Calls
Source
Frequently Asked Questions
What does migrateArbitraryVariants() do?
migrateArbitraryVariants() is a function in the tailwindcss codebase, defined in packages/@tailwindcss-upgrade/src/codemods/template/migrate-arbitrary-variants.ts.
Where is migrateArbitraryVariants() defined?
migrateArbitraryVariants() is defined in packages/@tailwindcss-upgrade/src/codemods/template/migrate-arbitrary-variants.ts at line 13.
What does migrateArbitraryVariants() call?
migrateArbitraryVariants() calls 8 function(s): cloneCandidate, parseCandidate, parseVariant, prepareDesignSystemStorage, printCandidate, printVariant, replaceObject, walkVariants.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free