rewriteUrls() — tailwindcss Function Reference
Architecture documentation for the rewriteUrls() function in urls.ts from the tailwindcss codebase.
Entity Profile
Dependency Diagram
graph TD fa6eaba6_9ce1_3f40_275c_1ab85a97a856["rewriteUrls()"] 5e3855e0_f04e_28ee_98ea_8502e6531bc8["urls.ts"] fa6eaba6_9ce1_3f40_275c_1ab85a97a856 -->|defined in| 5e3855e0_f04e_28ee_98ea_8502e6531bc8 39d7b158_3ac5_7dc8_f294_3849e86a7bc5["createCompileOptions()"] 39d7b158_3ac5_7dc8_f294_3849e86a7bc5 -->|calls| fa6eaba6_9ce1_3f40_275c_1ab85a97a856 9595c10a_7a89_e2a1_15ba_34c794ed96c2["url()"] fa6eaba6_9ce1_3f40_275c_1ab85a97a856 -->|calls| 9595c10a_7a89_e2a1_15ba_34c794ed96c2 b8a15b09_3dfb_7181_b1f8_368422e178e4["parse()"] fa6eaba6_9ce1_3f40_275c_1ab85a97a856 -->|calls| b8a15b09_3dfb_7181_b1f8_368422e178e4 df397cc3_5766_b5b5_66f1_04e0e5873574["normalizePath()"] fa6eaba6_9ce1_3f40_275c_1ab85a97a856 -->|calls| df397cc3_5766_b5b5_66f1_04e0e5873574 ed78da58_8727_ad98_120c_61f35cea357a["walk()"] fa6eaba6_9ce1_3f40_275c_1ab85a97a856 -->|calls| ed78da58_8727_ad98_120c_61f35cea357a 2da63033_d079_7b37_5cfb_3877674a70b9["toCss()"] fa6eaba6_9ce1_3f40_275c_1ab85a97a856 -->|calls| 2da63033_d079_7b37_5cfb_3877674a70b9 style fa6eaba6_9ce1_3f40_275c_1ab85a97a856 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
packages/@tailwindcss-node/src/urls.ts lines 37–93
export async function rewriteUrls({
css,
base,
root,
}: {
css: string
base: string
root: string
}) {
if (!css.includes('url(') && !css.includes('image-set(')) {
return css
}
let ast = parse(css)
let promises: Promise<void>[] = []
function replacerForDeclaration(url: string) {
if (url[0] === '/') return url
let absoluteUrl = path.posix.join(normalizePath(base), url)
let relativeUrl = path.posix.relative(normalizePath(root), absoluteUrl)
// 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 (!relativeUrl.startsWith('.')) {
relativeUrl = './' + relativeUrl
}
return relativeUrl
}
walk(ast, (node) => {
if (node.kind !== 'declaration') return
if (!node.value) return
let isCssUrl = cssUrlRE.test(node.value)
let isCssImageSet = cssImageSetRE.test(node.value)
if (isCssUrl || isCssImageSet) {
let rewriterToUse = isCssImageSet ? rewriteCssImageSet : rewriteCssUrls
promises.push(
rewriterToUse(node.value, replacerForDeclaration).then((url) => {
node.value = url
}),
)
}
})
if (promises.length) {
await Promise.all(promises)
}
return toCss(ast)
}
Domain
Subdomains
Defined In
Called By
Source
Frequently Asked Questions
What does rewriteUrls() do?
rewriteUrls() is a function in the tailwindcss codebase, defined in packages/@tailwindcss-node/src/urls.ts.
Where is rewriteUrls() defined?
rewriteUrls() is defined in packages/@tailwindcss-node/src/urls.ts at line 37.
What does rewriteUrls() call?
rewriteUrls() calls 5 function(s): normalizePath, parse, toCss, url, walk.
What calls rewriteUrls()?
rewriteUrls() is called by 1 function(s): createCompileOptions.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free