migratePostCSSJsonConfig() — tailwindcss Function Reference
Architecture documentation for the migratePostCSSJsonConfig() function in migrate-postcss.ts from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD f1b5bbf3_f07f_1c1b_c721_2a6bcd9f638c["migratePostCSSJsonConfig()"] 9c861556_2895_9b7c_50ec_d9aa3cfc5c68["migrate-postcss.ts"] f1b5bbf3_f07f_1c1b_c721_2a6bcd9f638c -->|defined in| 9c861556_2895_9b7c_50ec_d9aa3cfc5c68 18049d5a_3e65_d6cd_49d2_32e825145fa2["migratePostCSSConfig()"] 18049d5a_3e65_d6cd_49d2_32e825145fa2 -->|calls| f1b5bbf3_f07f_1c1b_c721_2a6bcd9f638c 47af51c1_6ead_b867_dfc4_bb86ae033af0["isEmptyObject()"] f1b5bbf3_f07f_1c1b_c721_2a6bcd9f638c -->|calls| 47af51c1_6ead_b867_dfc4_bb86ae033af0 style f1b5bbf3_f07f_1c1b_c721_2a6bcd9f638c fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/@tailwindcss-upgrade/src/codemods/config/migrate-postcss.ts lines 214–290
async function migratePostCSSJsonConfig(json: any): Promise<{
json: any
didAddPostcssClient: boolean
didRemoveAutoprefixer: boolean
didRemovePostCSSImport: boolean
} | null> {
function isTailwindCSSPlugin(plugin: string, options: any) {
return plugin === 'tailwindcss' && isEmptyObject(options)
}
function isPostCSSImportPlugin(plugin: string, options: any) {
return plugin === 'postcss-import' && isEmptyObject(options)
}
function isAutoprefixerPlugin(plugin: string, options: any) {
return plugin === 'autoprefixer' && isEmptyObject(options)
}
function isTailwindCSSNestingPlugin(plugin: string, options: any) {
return (
plugin === 'tailwindcss/nesting' && (options === 'postcss-nesting' || isEmptyObject(options))
)
}
let didAddPostcssClient = false
let didRemoveAutoprefixer = false
let didRemovePostCSSImport = false
let plugins = Object.entries(json.plugins || {})
let newPlugins: [string, any][] = []
for (let i = 0; i < plugins.length; i++) {
let [plugin, options] = plugins[i]
if (isTailwindCSSPlugin(plugin, options)) {
didAddPostcssClient = true
newPlugins.push(['@tailwindcss/postcss', options])
} else if (isAutoprefixerPlugin(plugin, options)) {
didRemoveAutoprefixer = true
} else if (isPostCSSImportPlugin(plugin, options)) {
// Check that there are no unknown plugins before the tailwindcss plugin
let hasUnknownPluginsBeforeTailwindCSS = false
for (let j = i + 1; j < plugins.length; j++) {
let [nextPlugin, nextOptions] = plugins[j]
if (isTailwindCSSPlugin(nextPlugin, nextOptions)) {
break
}
if (isTailwindCSSNestingPlugin(nextPlugin, nextOptions)) {
continue
}
hasUnknownPluginsBeforeTailwindCSS = true
break
}
if (!hasUnknownPluginsBeforeTailwindCSS) {
didRemovePostCSSImport = true
} else {
newPlugins.push([plugin, options])
}
} else if (isTailwindCSSNestingPlugin(plugin, options)) {
// Check if the following rule is the tailwindcss plugin
let [nextPlugin, nextOptions] = plugins[i + 1]
if (isTailwindCSSPlugin(nextPlugin, nextOptions)) {
// Since this plugin is bundled with `tailwindcss`, we don't need to
// clean up a package when deleting this line.
} else {
newPlugins.push([plugin, options])
}
} else {
newPlugins.push([plugin, options])
}
}
return {
json: { ...json, plugins: Object.fromEntries(newPlugins) },
didAddPostcssClient,
didRemoveAutoprefixer,
didRemovePostCSSImport,
}
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does migratePostCSSJsonConfig() do?
migratePostCSSJsonConfig() is a function in the tailwindcss codebase, defined in packages/@tailwindcss-upgrade/src/codemods/config/migrate-postcss.ts.
Where is migratePostCSSJsonConfig() defined?
migratePostCSSJsonConfig() is defined in packages/@tailwindcss-upgrade/src/codemods/config/migrate-postcss.ts at line 214.
What does migratePostCSSJsonConfig() call?
migratePostCSSJsonConfig() calls 1 function(s): isEmptyObject.
What calls migratePostCSSJsonConfig()?
migratePostCSSJsonConfig() is called by 1 function(s): migratePostCSSConfig.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free