Home / File/ update-tailwind-config.ts — ui Source File

update-tailwind-config.ts — ui Source File

Architecture documentation for update-tailwind-config.ts, a typescript file in the ui codebase. 13 imports, 1 dependents.

File typescript FrameworkTooling TemplateSync 13 imports 1 dependents 16 functions

Entity Profile

Dependency Diagram

graph LR
  ef3e192c_eced_bc46_1021_689faf6b7065["update-tailwind-config.ts"]
  eac8f98f_e40a_7fe8_f505_372c83d20c7a["fs"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> eac8f98f_e40a_7fe8_f505_372c83d20c7a
  b80715bf_43eb_b495_f2cf_a439c5eb0e34["os"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> b80715bf_43eb_b495_f2cf_a439c5eb0e34
  d05ec4ea_7a68_3a36_bfa4_9ba7f8409ee5["path"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> d05ec4ea_7a68_3a36_bfa4_9ba7f8409ee5
  a3b2545e_3d8c_699d_ef11_6ab18db14666["schema"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> a3b2545e_3d8c_699d_ef11_6ab18db14666
  b2895591_2a74_d518_deda_2f26be766dcb["get-config"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> b2895591_2a74_d518_deda_2f26be766dcb
  24fd9695_7ceb_b1f6_c84e_e349d5356c12["get-project-info"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> 24fd9695_7ceb_b1f6_c84e_e349d5356c12
  15e8bad0_00cc_3d96_8e33_2f062120ea7f["highlighter"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> 15e8bad0_00cc_3d96_8e33_2f062120ea7f
  a3e9bc4e_1faf_6261_a1db_396981c7761d["spinner"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> a3e9bc4e_1faf_6261_a1db_396981c7761d
  99a5fd75_7ef9_c199_7940_7abd94a7b70b["deepmerge"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> 99a5fd75_7ef9_c199_7940_7abd94a7b70b
  c8c7d264_bf26_d0bf_11d5_e0eca9b95691["stringify-object"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> c8c7d264_bf26_d0bf_11d5_e0eca9b95691
  9f76d61c_dcca_1eb0_fcc1_e4447f0f8980["tailwindcss"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> 9f76d61c_dcca_1eb0_fcc1_e4447f0f8980
  4f6f7e78_23ff_4f5f_c723_474454f64c85["ts-morph"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> 4f6f7e78_23ff_4f5f_c723_474454f64c85
  6802ce19_522d_e5fb_e458_8826d9f6952e["zod"]
  ef3e192c_eced_bc46_1021_689faf6b7065 --> 6802ce19_522d_e5fb_e458_8826d9f6952e
  06c88ca2_9dc4_827b_ce2a_8cc0c160ba0c["update-tailwind-config.test.ts"]
  06c88ca2_9dc4_827b_ce2a_8cc0c160ba0c --> ef3e192c_eced_bc46_1021_689faf6b7065
  style ef3e192c_eced_bc46_1021_689faf6b7065 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { promises as fs } from "fs"
import { tmpdir } from "os"
import path from "path"
import {
  registryItemCssVarsSchema,
  registryItemTailwindSchema,
} from "@/src/schema"
import { Config } from "@/src/utils/get-config"
import { TailwindVersion } from "@/src/utils/get-project-info"
import { highlighter } from "@/src/utils/highlighter"
import { spinner } from "@/src/utils/spinner"
import deepmerge from "deepmerge"
import objectToString from "stringify-object"
import { type Config as TailwindConfig } from "tailwindcss"
import {
  ArrayLiteralExpression,
  ObjectLiteralExpression,
  Project,
  PropertyAssignment,
  QuoteKind,
  ScriptKind,
  SyntaxKind,
  VariableStatement,
} from "ts-morph"
import { z } from "zod"

export type UpdaterTailwindConfig = Omit<TailwindConfig, "plugins"> & {
  // We only want string plugins for now.
  plugins?: string[]
}

export async function updateTailwindConfig(
  tailwindConfig:
    | z.infer<typeof registryItemTailwindSchema>["config"]
    | undefined,
  config: Config,
  options: {
    silent?: boolean
    tailwindVersion?: TailwindVersion
  }
) {
  if (!tailwindConfig) {
    return
  }

  options = {
    silent: false,
    tailwindVersion: "v3",
    ...options,
  }

  // No tailwind config in v4.
  if (options.tailwindVersion === "v4") {
    return
  }

  const tailwindFileRelativePath = path.relative(
    config.resolvedPaths.cwd,
    config.resolvedPaths.tailwindConfig
  )
// ... (481 more lines)

Subdomains

Dependencies

  • deepmerge
  • fs
  • get-config
  • get-project-info
  • highlighter
  • os
  • path
  • schema
  • spinner
  • stringify-object
  • tailwindcss
  • ts-morph
  • zod

Frequently Asked Questions

What does update-tailwind-config.ts do?
update-tailwind-config.ts is a source file in the ui codebase, written in typescript. It belongs to the FrameworkTooling domain, TemplateSync subdomain.
What functions are defined in update-tailwind-config.ts?
update-tailwind-config.ts defines 16 function(s): _createSourceFile, _getQuoteChar, addTailwindConfigPlugin, addTailwindConfigProperty, addTailwindConfigTheme, buildTailwindThemeColorsFromCssVars, nestSpreadElements, nestSpreadProperties, parseArrayLiteralExpression, parseObjectLiteral, and 6 more.
What does update-tailwind-config.ts depend on?
update-tailwind-config.ts imports 13 module(s): deepmerge, fs, get-config, get-project-info, highlighter, os, path, schema, and 5 more.
What files import update-tailwind-config.ts?
update-tailwind-config.ts is imported by 1 file(s): update-tailwind-config.test.ts.
Where is update-tailwind-config.ts in the architecture?
update-tailwind-config.ts is located at packages/shadcn/src/utils/updaters/update-tailwind-config.ts (domain: FrameworkTooling, subdomain: TemplateSync, directory: packages/shadcn/src/utils/updaters).

Analyze Your Own Codebase

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

Try Supermodel Free