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

update-tailwind-content.ts — ui Source File

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

File typescript FrameworkTooling TemplateSync 7 imports 1 dependents 3 functions

Entity Profile

Dependency Diagram

graph LR
  d72eaa38_229d_03b5_07e7_be0d275869a1["update-tailwind-content.ts"]
  eac8f98f_e40a_7fe8_f505_372c83d20c7a["fs"]
  d72eaa38_229d_03b5_07e7_be0d275869a1 --> eac8f98f_e40a_7fe8_f505_372c83d20c7a
  d05ec4ea_7a68_3a36_bfa4_9ba7f8409ee5["path"]
  d72eaa38_229d_03b5_07e7_be0d275869a1 --> d05ec4ea_7a68_3a36_bfa4_9ba7f8409ee5
  b2895591_2a74_d518_deda_2f26be766dcb["get-config"]
  d72eaa38_229d_03b5_07e7_be0d275869a1 --> b2895591_2a74_d518_deda_2f26be766dcb
  15e8bad0_00cc_3d96_8e33_2f062120ea7f["highlighter"]
  d72eaa38_229d_03b5_07e7_be0d275869a1 --> 15e8bad0_00cc_3d96_8e33_2f062120ea7f
  a3e9bc4e_1faf_6261_a1db_396981c7761d["spinner"]
  d72eaa38_229d_03b5_07e7_be0d275869a1 --> a3e9bc4e_1faf_6261_a1db_396981c7761d
  6ab016b6_1f7f_f572_4671_db2bf302cbad["update-tailwind-config"]
  d72eaa38_229d_03b5_07e7_be0d275869a1 --> 6ab016b6_1f7f_f572_4671_db2bf302cbad
  4f6f7e78_23ff_4f5f_c723_474454f64c85["ts-morph"]
  d72eaa38_229d_03b5_07e7_be0d275869a1 --> 4f6f7e78_23ff_4f5f_c723_474454f64c85
  5c43c6df_a4eb_a95d_11bf_cef88b226441["update-tailwind-content.test.ts"]
  5c43c6df_a4eb_a95d_11bf_cef88b226441 --> d72eaa38_229d_03b5_07e7_be0d275869a1
  style d72eaa38_229d_03b5_07e7_be0d275869a1 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import { promises as fs } from "fs"
import path from "path"
import { Config } from "@/src/utils/get-config"
import { highlighter } from "@/src/utils/highlighter"
import { spinner } from "@/src/utils/spinner"
import {
  _createSourceFile,
  _getQuoteChar,
} from "@/src/utils/updaters/update-tailwind-config"
import { ObjectLiteralExpression, SyntaxKind } from "ts-morph"

export async function updateTailwindContent(
  content: string[],
  config: Config,
  options: {
    silent?: boolean
  }
) {
  if (!content) {
    return
  }

  options = {
    silent: false,
    ...options,
  }

  const tailwindFileRelativePath = path.relative(
    config.resolvedPaths.cwd,
    config.resolvedPaths.tailwindConfig
  )
  const tailwindSpinner = spinner(
    `Updating ${highlighter.info(tailwindFileRelativePath)}`,
    {
      silent: options.silent,
    }
  ).start()
  const raw = await fs.readFile(config.resolvedPaths.tailwindConfig, "utf8")
  const output = await transformTailwindContent(raw, content, config)
  await fs.writeFile(config.resolvedPaths.tailwindConfig, output, "utf8")
  tailwindSpinner?.succeed()
}

export async function transformTailwindContent(
  input: string,
  content: string[],
  config: Config
) {
  const sourceFile = await _createSourceFile(input, config)
  // Find the object with content property.
  // This is faster than traversing the default export.
  // TODO: maybe we do need to traverse the default export?
  const configObject = sourceFile
    .getDescendantsOfKind(SyntaxKind.ObjectLiteralExpression)
    .find((node) =>
      node
        .getProperties()
        .some(
          (property) =>
            property.isKind(SyntaxKind.PropertyAssignment) &&
// ... (62 more lines)

Subdomains

Dependencies

  • fs
  • get-config
  • highlighter
  • path
  • spinner
  • ts-morph
  • update-tailwind-config

Frequently Asked Questions

What does update-tailwind-content.ts do?
update-tailwind-content.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-content.ts?
update-tailwind-content.ts defines 3 function(s): addTailwindConfigContent, transformTailwindContent, updateTailwindContent.
What does update-tailwind-content.ts depend on?
update-tailwind-content.ts imports 7 module(s): fs, get-config, highlighter, path, spinner, ts-morph, update-tailwind-config.
What files import update-tailwind-content.ts?
update-tailwind-content.ts is imported by 1 file(s): update-tailwind-content.test.ts.
Where is update-tailwind-content.ts in the architecture?
update-tailwind-content.ts is located at packages/shadcn/src/utils/updaters/update-tailwind-content.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