objectToAst() — tailwindcss Function Reference
Architecture documentation for the objectToAst() function in plugin-api.ts from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD 2e310eb5_4501_1335_aeaa_0b16be3953d3["objectToAst()"] da5d1116_ab2a_437a_6b13_c1429fd546fa["plugin-api.ts"] 2e310eb5_4501_1335_aeaa_0b16be3953d3 -->|defined in| da5d1116_ab2a_437a_6b13_c1429fd546fa 987b5669_7b27_7dbe_f34a_93d0f099e43a["keyframesToRules()"] 987b5669_7b27_7dbe_f34a_93d0f099e43a -->|calls| 2e310eb5_4501_1335_aeaa_0b16be3953d3 31653e23_464a_3652_4a48_0c82332a92c4["buildPluginApi()"] 31653e23_464a_3652_4a48_0c82332a92c4 -->|calls| 2e310eb5_4501_1335_aeaa_0b16be3953d3 4137fbb0_2dd7_d72c_217e_8188fb959114["entries()"] 2e310eb5_4501_1335_aeaa_0b16be3953d3 -->|calls| 4137fbb0_2dd7_d72c_217e_8188fb959114 2f6881be_62d9_4b96_7331_a962ced095f7["atRule()"] 2e310eb5_4501_1335_aeaa_0b16be3953d3 -->|calls| 2f6881be_62d9_4b96_7331_a962ced095f7 1369a6dc_e395_347d_5d24_b88e22c5446d["decl()"] 2e310eb5_4501_1335_aeaa_0b16be3953d3 -->|calls| 1369a6dc_e395_347d_5d24_b88e22c5446d 085cf56e_8188_afb1_04da_5ccd0fb7babc["rule()"] 2e310eb5_4501_1335_aeaa_0b16be3953d3 -->|calls| 085cf56e_8188_afb1_04da_5ccd0fb7babc style 2e310eb5_4501_1335_aeaa_0b16be3953d3 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/tailwindcss/src/compat/plugin-api.ts lines 546–588
export function objectToAst(rules: CssInJs | CssInJs[]): AstNode[] {
let ast: AstNode[] = []
rules = Array.isArray(rules) ? rules : [rules]
let entries = rules.flatMap((rule) => Object.entries(rule))
for (let [name, value] of entries) {
if (value === null || value === undefined) continue
// @ts-expect-error
// We do not want `false` present in the types but still need to discard these nodes for
// compatibility purposes
if (value === false) continue
if (typeof value !== 'object') {
if (!name.startsWith('--')) {
if (value === '@slot') {
ast.push(rule(name, [atRule('@slot')]))
continue
}
// Convert camelCase to kebab-case:
// https://github.com/postcss/postcss-js/blob/b3db658b932b42f6ac14ca0b1d50f50c4569805b/parser.js#L30-L35
name = name.replace(/([A-Z])/g, '-$1').toLowerCase()
}
ast.push(decl(name, String(value)))
} else if (Array.isArray(value)) {
for (let item of value) {
if (typeof item === 'string') {
ast.push(decl(name, item))
} else {
ast.push(rule(name, objectToAst(item)))
}
}
} else {
ast.push(rule(name, objectToAst(value)))
}
}
return ast
}
Domain
Subdomains
Called By
Source
Frequently Asked Questions
What does objectToAst() do?
objectToAst() is a function in the tailwindcss codebase, defined in packages/tailwindcss/src/compat/plugin-api.ts.
Where is objectToAst() defined?
objectToAst() is defined in packages/tailwindcss/src/compat/plugin-api.ts at line 546.
What does objectToAst() call?
objectToAst() calls 4 function(s): atRule, decl, entries, rule.
What calls objectToAst()?
objectToAst() is called by 2 function(s): buildPluginApi, keyframesToRules.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free