prepare-config.ts — tailwindcss Source File
Architecture documentation for prepare-config.ts, a typescript file in the tailwindcss codebase. 18 imports, 2 dependents.
Entity Profile
Dependency Diagram
graph LR d58c78f4_5856_72aa_9dca_c418a7d7f31e["prepare-config.ts"] 86cbca6b_bfa0_804c_ee2e_2cc7a7aef7fe["compile.ts"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> 86cbca6b_bfa0_804c_ee2e_2cc7a7aef7fe 2a6a0b85_eed3_a09b_8c8d_c2a585078dac["loadModule"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> 2a6a0b85_eed3_a09b_8c8d_c2a585078dac cad44155_17aa_e1d6_081a_8f3b4f06bcde["resolve-config.ts"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> cad44155_17aa_e1d6_081a_8f3b4f06bcde bc7b25d3_d5ad_3609_d595_c9755dfadcbb["resolveConfig"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> bc7b25d3_d5ad_3609_d595_c9755dfadcbb da5d1116_ab2a_437a_6b13_c1429fd546fa["plugin-api.ts"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> da5d1116_ab2a_437a_6b13_c1429fd546fa 0255ffc0_a3d5_e883_5143_99660766448f["Config"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> 0255ffc0_a3d5_e883_5143_99660766448f bdedd2f6_da4b_69dc_e990_0814b59fbe6e["design-system.ts"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> bdedd2f6_da4b_69dc_e990_0814b59fbe6e 665aa4ed_d86e_30e5_80d5_cd56b8ca8b62["DesignSystem"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> 665aa4ed_d86e_30e5_80d5_cd56b8ca8b62 2329d36e_5aa2_4fa5_cf9f_a9c6cc4e1277["renderer.ts"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> 2329d36e_5aa2_4fa5_cf9f_a9c6cc4e1277 6c5b3bb2_4069_e0af_8887_216e1c995446["error"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> 6c5b3bb2_4069_e0af_8887_216e1c995446 d3ccc5ce_e370_63df_a97d_a2f004fd83ca["highlight"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> d3ccc5ce_e370_63df_a97d_a2f004fd83ca 1c806fef_a933_285c_65d9_c10998b12c7d["relative"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> 1c806fef_a933_285c_65d9_c10998b12c7d e4e5ac2c_0d58_689d_0ad6_7086823787f1["migrate-prefix.ts"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> e4e5ac2c_0d58_689d_0ad6_7086823787f1 137edc0b_e9b1_6852_6d97_d3956c8deba4["migratePrefixValue"] d58c78f4_5856_72aa_9dca_c418a7d7f31e --> 137edc0b_e9b1_6852_6d97_d3956c8deba4 style d58c78f4_5856_72aa_9dca_c418a7d7f31e fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
import { __unstable__loadDesignSystem, compile } from '@tailwindcss/node'
import fs from 'node:fs/promises'
import path, { dirname } from 'node:path'
import { fileURLToPath } from 'node:url'
import { loadModule } from '../../../../@tailwindcss-node/src/compile'
import { resolveConfig } from '../../../../tailwindcss/src/compat/config/resolve-config'
import type { Config } from '../../../../tailwindcss/src/compat/plugin-api'
import type { DesignSystem } from '../../../../tailwindcss/src/design-system'
import { error, highlight, relative } from '../../utils/renderer'
import { migratePrefixValue } from './migrate-prefix'
const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)
const css = String.raw
export async function prepareConfig(
configFilePath: string | null,
options: { base: string },
): Promise<{
designSystem: DesignSystem
sources: { base: string; pattern: string }[]
userConfig: Config
configFilePath: string
newPrefix: string | null
}> {
try {
if (configFilePath === null) {
configFilePath = await detectConfigPath(options.base)
} else if (!path.isAbsolute(configFilePath)) {
configFilePath = path.resolve(options.base, configFilePath)
}
// We create a relative path from the current file to the config file. This is
// required so that the base for Tailwind CSS can bet inside the
// @tailwindcss-upgrade package and we can require `tailwindcss` properly.
let relative = path.relative(__dirname, configFilePath)
// If the path points to a file in the same directory, `path.relative` will
// remove the leading `./` and we need to add it back in order to still
// consider the path relative
if (!relative.startsWith('.') && !path.isAbsolute(relative)) {
relative = './' + relative
}
let userConfig = await createResolvedUserConfig(configFilePath)
let newPrefix = userConfig.prefix ? migratePrefixValue(userConfig.prefix) : null
let input = css`
@import 'tailwindcss' ${newPrefix ? `prefix(${newPrefix})` : ''};
@config '${relative}';
`
let [compiler, designSystem] = await Promise.all([
compile(input, { base: __dirname, onDependency: () => {} }),
__unstable__loadDesignSystem(input, { base: __dirname }),
])
return {
// ... (74 more lines)
Domain
Subdomains
Dependencies
Imported By
Source
Frequently Asked Questions
What does prepare-config.ts do?
prepare-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 prepare-config.ts?
prepare-config.ts defines 4 function(s): createResolvedUserConfig, detectConfigPath, parentPaths, prepareConfig.
What does prepare-config.ts depend on?
prepare-config.ts imports 18 module(s): Config, DesignSystem, compile.ts, design-system.ts, error, highlight, loadModule, migrate-prefix.ts, and 10 more.
What files import prepare-config.ts?
prepare-config.ts is imported by 2 file(s): index.ts, link.ts.
Where is prepare-config.ts in the architecture?
prepare-config.ts is located at packages/@tailwindcss-upgrade/src/codemods/template/prepare-config.ts (domain: CommandLineInterface, subdomain: Codemods, directory: packages/@tailwindcss-upgrade/src/codemods/template).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free