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
  3c115506_d301_3ffd_6d4a_a58dbd7aaed5["migrateImport()"]
  4110edba_26d6_f493_077a_dd261e1ea456["migrate-import.ts"]
  3c115506_d301_3ffd_6d4a_a58dbd7aaed5 -->|defined in| 4110edba_26d6_f493_077a_dd261e1ea456
  fd564c82_e213_1546_a482_7c71c540ad9d["migrate()"]
  fd564c82_e213_1546_a482_7c71c540ad9d -->|calls| 3c115506_d301_3ffd_6d4a_a58dbd7aaed5
  1be562b7_fe23_7e22_03ec_31b3d101e5e5["migrateContents()"]
  1be562b7_fe23_7e22_03ec_31b3d101e5e5 -->|calls| 3c115506_d301_3ffd_6d4a_a58dbd7aaed5
  c58cbb33_f3cc_0b4f_844a_15bf66a1dc61["segment()"]
  3c115506_d301_3ffd_6d4a_a58dbd7aaed5 -->|calls| c58cbb33_f3cc_0b4f_844a_15bf66a1dc61
  6037d149_2cd7_be02_40f7_bc552380ed53["parseImportParams()"]
  3c115506_d301_3ffd_6d4a_a58dbd7aaed5 -->|calls| 6037d149_2cd7_be02_40f7_bc552380ed53
  49a8c506_c50e_ed4b_5a0e_0393edae2b6f["parse()"]
  3c115506_d301_3ffd_6d4a_a58dbd7aaed5 -->|calls| 49a8c506_c50e_ed4b_5a0e_0393edae2b6f
  style 3c115506_d301_3ffd_6d4a_a58dbd7aaed5 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