All files / src index.ts

100% Statements 10/10
100% Branches 0/0
100% Functions 3/3
100% Lines 8/8
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  1x 1x 1x       13x           13x 13x 13x         1x                          
import * as postcss from 'postcss';
 
import postcssSelectorExtract = require('./lib/postcss-selector-extract');
 
import { IProcessOptions } from './interfaces/IProcessOptions';
 
/**
 * Synchronously extract and replace CSS selectors from a string.
 */
export const processSync = ({
  css,
  filters,
  postcssSyntax,
  preserveLines,
}: IProcessOptions) => postcss(postcssSelectorExtract(filters, preserveLines))
  .process(css, { syntax: postcssSyntax }).css
  .replace(/\/\* START preserve lines|preserve lines END \*\//g, ``);
 
/**
 * Asynchronously extract and replace CSS selectors from a string.
 */
export const process = (options: IProcessOptions) => new Promise((resolve) => {
  const result = processSync(options);
  resolve(result);
});
 
/**
 * cssSelectorExtract
 */
export default {
  process,
  processSync,
};