Home / File/ migrate-js-config.ts — tailwindcss Source File

migrate-js-config.ts — tailwindcss Source File

Architecture documentation for migrate-js-config.ts, a typescript file in the tailwindcss codebase. 40 imports, 3 dependents.

File typescript CommandLineInterface Codemods 40 imports 3 dependents 12 functions

Entity Profile

Dependency Diagram

graph LR
  ffe9c87e_35ad_f431_9625_80fc875792a7["migrate-js-config.ts"]
  86cbca6b_bfa0_804c_ee2e_2cc7a7aef7fe["compile.ts"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 86cbca6b_bfa0_804c_ee2e_2cc7a7aef7fe
  2a6a0b85_eed3_a09b_8c8d_c2a585078dac["loadModule"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 2a6a0b85_eed3_a09b_8c8d_c2a585078dac
  f611f48e_9be7_5c5c_56bf_add7b547ba80["../../../../tailwindcss/dist/default-theme"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> f611f48e_9be7_5c5c_56bf_add7b547ba80
  b9cbffa4_c352_cf3c_268f_cbb174fb3a47["ast.ts"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> b9cbffa4_c352_cf3c_268f_cbb174fb3a47
  2f6881be_62d9_4b96_7331_a962ced095f7["atRule"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 2f6881be_62d9_4b96_7331_a962ced095f7
  9b49f3c6_0c8d_5c62_965c_30a1db6499f8["toCss"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 9b49f3c6_0c8d_5c62_965c_30a1db6499f8
  8d84257d_f3b2_cdf8_542f_835967da0481["apply-config-to-theme.ts"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 8d84257d_f3b2_cdf8_542f_835967da0481
  1767219e_c38a_227c_492b_5d47634d54a4["keyPathToCssProperty"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 1767219e_c38a_227c_492b_5d47634d54a4
  961a5671_178b_5937_79ae_2463c9fb3bc9["themeableValues"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 961a5671_178b_5937_79ae_2463c9fb3bc9
  c366ff81_32f3_ab43_fb66_6ea38913c09a["apply-keyframes-to-theme.ts"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> c366ff81_32f3_ab43_fb66_6ea38913c09a
  987b5669_7b27_7dbe_f34a_93d0f099e43a["keyframesToRules"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 987b5669_7b27_7dbe_f34a_93d0f099e43a
  cad44155_17aa_e1d6_081a_8f3b4f06bcde["resolve-config.ts"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> cad44155_17aa_e1d6_081a_8f3b4f06bcde
  bc7b25d3_d5ad_3609_d595_c9755dfadcbb["resolveConfig"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> bc7b25d3_d5ad_3609_d595_c9755dfadcbb
  479eaf18_f640_94ff_bd07_456688f9ac14["types.ts"]
  ffe9c87e_35ad_f431_9625_80fc875792a7 --> 479eaf18_f640_94ff_bd07_456688f9ac14
  style ffe9c87e_35ad_f431_9625_80fc875792a7 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { Scanner } from '@tailwindcss/oxide'
import fs from 'node:fs/promises'
import path from 'node:path'
import { fileURLToPath } from 'node:url'
import { loadModule } from '../../../../@tailwindcss-node/src/compile'
import defaultTheme from '../../../../tailwindcss/dist/default-theme'
import { atRule, toCss, type AstNode } from '../../../../tailwindcss/src/ast'
import {
  keyPathToCssProperty,
  themeableValues,
} from '../../../../tailwindcss/src/compat/apply-config-to-theme'
import { keyframesToRules } from '../../../../tailwindcss/src/compat/apply-keyframes-to-theme'
import {
  resolveConfig,
  type ConfigFile,
} from '../../../../tailwindcss/src/compat/config/resolve-config'
import type { ResolvedConfig, ThemeConfig } from '../../../../tailwindcss/src/compat/config/types'
import { buildCustomContainerUtilityRules } from '../../../../tailwindcss/src/compat/container'
import { darkModePlugin } from '../../../../tailwindcss/src/compat/dark-mode'
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
import { escape } from '../../../../tailwindcss/src/utils/escape'
import {
  isValidOpacityValue,
  isValidSpacingMultiplier,
} from '../../../../tailwindcss/src/utils/infer-data-type'
import * as ValueParser from '../../../../tailwindcss/src/value-parser'
import { findStaticPlugins, type StaticPluginOptions } from '../../utils/extract-static-plugins'
import { highlight, info, relative } from '../../utils/renderer'

const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)

export type JSConfigMigration =
  // Could not convert the config file, need to inject it as-is in a @config directive
  null | {
    sources: { base: string; pattern: string }[]
    plugins: { base: string; path: string; options: null | StaticPluginOptions }[]
    css: string
  }

export async function migrateJsConfig(
  designSystem: DesignSystem,
  fullConfigPath: string,
  base: string,
): Promise<JSConfigMigration> {
  let [unresolvedConfig, source] = await Promise.all([
    loadModule(fullConfigPath, __dirname, () => {}).then((result) => result.module) as Config,
    fs.readFile(fullConfigPath, 'utf-8'),
  ])

  if (!canMigrateConfig(unresolvedConfig, source)) {
    info(
      `The configuration file at ${highlight(relative(fullConfigPath, base))} could not be automatically migrated to the new CSS configuration format, so your CSS has been updated to load your existing configuration file.`,
      { prefix: '↳ ' },
    )
    return null
  }

  let sources: { base: string; pattern: string }[] = []
// ... (494 more lines)

Subdomains

Frequently Asked Questions

What does migrate-js-config.ts do?
migrate-js-config.ts is a source file in the tailwindcss codebase, written in typescript. It belongs to the CommandLineInterface domain, Codemods subdomain.
What functions are defined in migrate-js-config.ts?
migrate-js-config.ts defines 12 function(s): autodetectedSourceFiles, canMigrateConfig, createSectionKey, keyframesToCss, migrateContent, migrateDarkMode, migrateJsConfig, migrateTheme, onlyAllowedThemeValues, patternSourceFiles, and 2 more.
What does migrate-js-config.ts depend on?
migrate-js-config.ts imports 40 module(s): ../../../../tailwindcss/dist/default-theme, Config, DesignSystem, ResolvedConfig, ThemeConfig, apply-config-to-theme.ts, apply-keyframes-to-theme.ts, ast.ts, and 32 more.
What files import migrate-js-config.ts?
migrate-js-config.ts is imported by 3 file(s): index.ts, migrate-config.ts, migrate.ts.
Where is migrate-js-config.ts in the architecture?
migrate-js-config.ts is located at packages/@tailwindcss-upgrade/src/codemods/config/migrate-js-config.ts (domain: CommandLineInterface, subdomain: Codemods, directory: packages/@tailwindcss-upgrade/src/codemods/config).

Analyze Your Own Codebase

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

Try Supermodel Free