123456789101112131415161718192021222324252627282930313233343536373839 |
- const getVueJestConfig = require('./get-vue-jest-config')
- const cssExtract = require('extract-from-css')
- module.exports = function processStyle (stylePart, filePath, jestConfig = {}) {
- const vueJestConfig = getVueJestConfig(jestConfig)
- if (!stylePart || vueJestConfig.experimentalCSSCompile === false) {
- return {}
- }
- const processStyleByLang = lang => require('./compilers/' + lang + '-compiler')(stylePart.content, filePath, jestConfig)
- let cssCode = stylePart.content
- switch (stylePart.lang) {
- case 'styl':
- case 'stylus':
- cssCode = processStyleByLang('stylus')
- break
- case 'scss':
- cssCode = processStyleByLang('scss')
- break
- case 'sass':
- cssCode = processStyleByLang('sass')
- break
- case 'pcss':
- case 'postcss':
- cssCode = processStyleByLang('postcss')
- break
- }
- const cssNames = cssExtract.extractClasses(cssCode)
- const obj = {}
- for (let i = 0, l = cssNames.length; i < l; i++) {
- obj[cssNames[i]] = cssNames[i]
- }
- return obj
- }
|