Skip to content

Commit

Permalink
fix: handle multiple queries declaration
Browse files Browse the repository at this point in the history
  • Loading branch information
levchak0910 committed May 18, 2024
1 parent f49be6b commit 8bf3b6e
Showing 1 changed file with 28 additions and 25 deletions.
53 changes: 28 additions & 25 deletions src/functions/extract-media-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,33 +13,36 @@ export async function extractMedia(cssFile: FileData, minSize: number): Promise<
const atRuleStore = new Map<string, Set<AtRule>>()

ast.root.walkAtRules("media", (atRule) => {
const mediaQuery = atRule.params
const mediaName = getMediaName(mediaQuery)

const content = atRule.nodes.map(node => node.toString()).join("")

const existingMQRecord = mq.find(record => record.filePath === cssFile.path.full && record.mediaName === mediaName)

if (existingMQRecord) {
existingMQRecord.nodeContents.push(content)
}
else {
mq.push({
filePath: cssFile.path.full,
fileBase: cssFile.base,
mediaName,
mediaQuery,
nodeContents: [content],
})
}

if (atRuleStore.has(mediaQuery)) {
const set = atRuleStore.get(mediaQuery)!
set.add(atRule)
}
else {
atRuleStore.set(mediaQuery, new Set([atRule]))
}
const mediaQueries = atRule.params.split(",").map(q => q.trim())

mediaQueries.forEach((mediaQuery) => {
const mediaName = getMediaName(mediaQuery)

const existingMQRecord = mq.find(record => record.filePath === cssFile.path.full && record.mediaName === mediaName)

if (existingMQRecord) {
existingMQRecord.nodeContents.push(content)
}
else {
mq.push({
filePath: cssFile.path.full,
fileBase: cssFile.base,
mediaName,
mediaQuery,
nodeContents: [content],
})
}

if (atRuleStore.has(mediaQuery)) {
const set = atRuleStore.get(mediaQuery)!
set.add(atRule)
}
else {
atRuleStore.set(mediaQuery, new Set([atRule]))
}
})
})

atRuleStore.forEach((set, query) => {
Expand Down

0 comments on commit 8bf3b6e

Please sign in to comment.