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.
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)
Domain
Subdomains
Dependencies
- fs
- get-config
- highlighter
- path
- spinner
- ts-morph
- update-tailwind-config
Source
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