Home / Function/ migrateImport() — tailwindcss Function Reference

migrateImport() — tailwindcss Function Reference

Architecture documentation for the migrateImport() function in migrate-import.ts from the tailwindcss codebase.

Entity Profile

Dependency Diagram

graph TD
  d0429f7e_c0b8_e2df_15f9_96e807ee2d3a["migrateImport()"]
  7d223813_0df4_dfbe_850e_d5fd9ab81eef["migrate-import.ts"]
  d0429f7e_c0b8_e2df_15f9_96e807ee2d3a -->|defined in| 7d223813_0df4_dfbe_850e_d5fd9ab81eef
  cb5f6760_00ef_b438_93d3_82d6482bbbd1["migrate()"]
  cb5f6760_00ef_b438_93d3_82d6482bbbd1 -->|calls| d0429f7e_c0b8_e2df_15f9_96e807ee2d3a
  9ebd84f7_07bc_9b19_28a7_8bd93119c37e["migrateContents()"]
  9ebd84f7_07bc_9b19_28a7_8bd93119c37e -->|calls| d0429f7e_c0b8_e2df_15f9_96e807ee2d3a
  f712ed47_45d4_4e5a_dd73_fdefa1da71da["segment()"]
  d0429f7e_c0b8_e2df_15f9_96e807ee2d3a -->|calls| f712ed47_45d4_4e5a_dd73_fdefa1da71da
  080c2c82_1391_bd9d_3ee3_8b010c0f87ce["parseImportParams()"]
  d0429f7e_c0b8_e2df_15f9_96e807ee2d3a -->|calls| 080c2c82_1391_bd9d_3ee3_8b010c0f87ce
  2d6c8361_96d8_df0d_ca51_c62f179fdc73["parse()"]
  d0429f7e_c0b8_e2df_15f9_96e807ee2d3a -->|calls| 2d6c8361_96d8_df0d_ca51_c62f179fdc73
  style d0429f7e_c0b8_e2df_15f9_96e807ee2d3a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/@tailwindcss-upgrade/src/codemods/css/migrate-import.ts lines 8–52

export function migrateImport(): Plugin {
  async function migrate(root: Root) {
    let file = root.source?.input.file
    if (!file) return

    let promises: Promise<void>[] = []
    root.walkAtRules('import', (rule) => {
      try {
        let [firstParam, ...rest] = segment(rule.params, ' ')

        let params = parseImportParams(ValueParser.parse(firstParam))
        if (!params) return

        let isRelative = params.uri[0] === '.'
        let hasCssExtension = params.uri.endsWith('.css')

        if (isRelative && hasCssExtension) {
          return
        }

        let fullPath = resolve(dirname(file), params.uri)
        if (!hasCssExtension) fullPath += '.css'

        promises.push(
          fs.stat(fullPath).then(() => {
            let ext = hasCssExtension ? '' : '.css'
            let path = isRelative ? params.uri : `./${params.uri}`
            rule.params = [`'${path}${ext}'`, ...rest].join(' ')
          }),
        )
      } catch {
        // When an error occurs while parsing the `@import` statement, we skip
        // the import. This will happen in cases where you import an external
        // URL.
      }
    })

    await Promise.allSettled(promises)
  }

  return {
    postcssPlugin: '@tailwindcss/upgrade/migrate-import',
    OnceExit: migrate,
  }
}

Subdomains

Frequently Asked Questions

What does migrateImport() do?
migrateImport() is a function in the tailwindcss codebase, defined in packages/@tailwindcss-upgrade/src/codemods/css/migrate-import.ts.
Where is migrateImport() defined?
migrateImport() is defined in packages/@tailwindcss-upgrade/src/codemods/css/migrate-import.ts at line 8.
What does migrateImport() call?
migrateImport() calls 3 function(s): parse, parseImportParams, segment.
What calls migrateImport()?
migrateImport() is called by 2 function(s): migrate, migrateContents.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free