(searchThrough, css, options, callback)
| 28 | new CleanCss(options).minify(cssSource).styles |
| 29 | |
| 30 | const purify = (searchThrough, css, options, callback) => { |
| 31 | if (typeof options === "function") { |
| 32 | callback = options |
| 33 | options = {} |
| 34 | } |
| 35 | options = getOptions(options) |
| 36 | let cssString = FileUtil.filesToSource(css, "css"), |
| 37 | content = FileUtil.filesToSource(searchThrough, "content") |
| 38 | PrintUtil.startLog(minify(cssString).length) |
| 39 | let wordsInContent = getAllWordsInContent(content), |
| 40 | selectorFilter = new SelectorFilter(wordsInContent, options.whitelist), |
| 41 | tree = new CssTreeWalker(cssString, [selectorFilter]) |
| 42 | tree.beginReading() |
| 43 | let source = tree.toString() |
| 44 | |
| 45 | source = options.minify ? minify(source, options.cleanCssOptions) : source |
| 46 | |
| 47 | // Option info = true |
| 48 | if (options.info) { |
| 49 | if (options.minify) { |
| 50 | PrintUtil.printInfo(source.length) |
| 51 | } else { |
| 52 | PrintUtil.printInfo(minify(source, options.cleanCssOptions).length) |
| 53 | } |
| 54 | } |
| 55 | |
| 56 | // Option rejected = true |
| 57 | if (options.rejected && selectorFilter.rejectedSelectors.length) { |
| 58 | PrintUtil.printRejected(selectorFilter.rejectedSelectors) |
| 59 | } |
| 60 | |
| 61 | if (options.output) { |
| 62 | fs.writeFile(options.output, source, err => { |
| 63 | if (err) return err |
| 64 | }) |
| 65 | } else { |
| 66 | return callback ? callback(source) : source |
| 67 | } |
| 68 | } |
| 69 | |
| 70 | export default purify |
nothing calls this directly
no test coverage detected