in plugins/no-unused-vars.js [49:82]
function getCachedVariables(options, log) {
const key = JSON.stringify(options)
return cache.tap(key, () => {
const {files, variablePattern} = options
const decs = new TapMap()
const refs = new TapMap()
log(`Looking for variables in ${files} ...`)
for (const file of globby.sync(files)) {
const css = readFileSync(file, 'utf8')
for (const match of matchAll(css, variablePattern)) {
const after = css.substr(match.index + match[0].length)
const name = match[0]
if (after.startsWith(COLON)) {
decs.tap(name, set).add(file)
} else {
refs.tap(name, set).add(file)
}
}
}
log(`Found ${decs.size} declarations, ${pluralize(refs.size, 'reference')}.`)
for (const [name, filesList] of decs.entries()) {
const fileRefs = refs.get(name)
if (fileRefs) {
log(`variable "${name}" declared in ${pluralize(filesList.size, 'file')}, ref'd in ${fileRefs.size}`)
} else {
log(`[!] variable "${name}" declared in ${Array.from(filesList)[0]} is not referenced`)
}
}
return {decs, refs}
})
}