Code coverage report for src/extractor.js

Statements: 100% (41 / 41)      Branches: 88.46% (23 / 26)      Functions: 100% (3 / 3)      Lines: 100% (6 / 6)      Ignored: 1 statement, 2 branches     

All files » src/ » extractor.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49                                        1                 24 23     24                         24    
import postcss from 'postcss';
import genericNames from 'generic-names';
 
import Values from 'postcss-modules-values';
import LocalByDefault from 'postcss-modules-local-by-default';
import ExtractImports from 'postcss-modules-extract-imports';
import Scope from 'postcss-modules-scope';
import Parser from './parser';
 
/**
 * @param  {array}           options.append
 * @param  {array}           options.prepend
 * @param  {array}           options.use
 * @param  {function}        options.createImportedName
 * @param  {function|string} options.generateScopedName
 * @param  {string}          options.mode
 * @param  {string}          options.rootDir
 * @param  {function}        fetch
 * @return {object}
 */
export default function extractor({
  append = [],
  prepend = [],
  createImportedName,
  generateScopedName,
  mode,
  use,
  rootDir: context = process.cwd(),
} = {}, fetch) {
  if (typeof generateScopedName !== 'function') {
    generateScopedName = genericNames(generateScopedName || '[name]__[local]___[hash:base64:5]', {context});
  }
 
  const plugins = (use || [
    ...prepend,
    Values,
    mode
      ? new LocalByDefault({mode})
      : LocalByDefault,
    createImportedName
      ? new ExtractImports({createImportedName})
      : ExtractImports,
    new Scope({generateScopedName}),
    ...append,
  ]).concat(new Parser({fetch})); // no pushing in order to avoid the possible mutations
 
  return postcss(plugins);
}