mirror of
https://github.com/thangisme/notes.git
synced 2024-11-01 03:27:29 -04:00
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
|
/* @flow */
|
||
|
"use strict"
|
||
|
const ignore = require("ignore")
|
||
|
const micromatch = require("micromatch")
|
||
|
const path = require("path")
|
||
|
|
||
|
const alwaysIgnoredGlobs = require("./alwaysIgnoredGlobs")
|
||
|
|
||
|
// To find out if a path is ignored, we need to load the config,
|
||
|
// which may have an ignoreFiles property,
|
||
|
// and will have incorporated any .stylelintignore file that was found
|
||
|
// into its ignorePatterns property. We then check the path
|
||
|
// against these.
|
||
|
module.exports = function (
|
||
|
stylelint/*: stylelint$internalApi*/,
|
||
|
filePathArg/*:: ?: string*/
|
||
|
)/*: Promise<boolean>*/ {
|
||
|
const filePath = filePathArg // to please Flow
|
||
|
if (!filePath) {
|
||
|
return Promise.resolve(false)
|
||
|
}
|
||
|
|
||
|
return stylelint.getConfigForFile(filePath).then((result) => {
|
||
|
const config = result.config
|
||
|
|
||
|
const absoluteFilePath = path.isAbsolute(filePath) ? filePath : path.resolve(process.cwd(), filePath)
|
||
|
|
||
|
const ignoreFiles = alwaysIgnoredGlobs.concat(config.ignoreFiles || [])
|
||
|
if (micromatch(absoluteFilePath, ignoreFiles).length) {
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
const ignorePatternsFilter = ignore().add(config.ignorePatterns).createFilter()
|
||
|
|
||
|
const filepathRelativeToCwd = path.relative(process.cwd(), filePath)
|
||
|
|
||
|
if (ignorePatternsFilter && !ignorePatternsFilter(filepathRelativeToCwd)) {
|
||
|
return true
|
||
|
}
|
||
|
|
||
|
return false
|
||
|
})
|
||
|
}
|