Track locations inside @import

This commit is contained in:
Jordan Pittman 2025-04-03 13:29:55 -04:00
parent e95e6e239f
commit c129f48cae
2 changed files with 4 additions and 3 deletions

View file

@ -17,6 +17,7 @@ export async function substituteAtImports(
base: string,
loadStylesheet: LoadStylesheet,
recurseCount = 0,
track = false,
) {
let features = Features.None
let promises: Promise<void>[] = []
@ -52,8 +53,8 @@ export async function substituteAtImports(
}
let loaded = await loadStylesheet(uri, base)
let ast = CSS.parse(loaded.content)
await substituteAtImports(ast, loaded.base, loadStylesheet, recurseCount + 1)
let ast = CSS.parse(loaded.content, { from: track ? loaded.path : undefined })
await substituteAtImports(ast, loaded.base, loadStylesheet, recurseCount + 1, track)
contextNode.nodes = buildImportNodes(
[context({ base: loaded.base }, ast)],

View file

@ -145,7 +145,7 @@ async function parseCss(
let features = Features.None
ast = [contextNode({ base }, ast)] as AstNode[]
features |= await substituteAtImports(ast, base, loadStylesheet)
features |= await substituteAtImports(ast, base, loadStylesheet, 0, from !== undefined)
let important = null as boolean | null
let theme = new Theme()