nl_tokens: Do the actual work
pl_tokens: function processWithTextApi ( [ options , pages , stylesheets ] ) { /* If we specified a raw string of CSS, add it to the stylesheets array */ if ( options . <mask> ) { if ( _ . isString ( options . raw ) ) { stylesheets . push ( options . raw ) ; } else { throw new Error ( 'UnCSS: options.raw - expected a string' ) ; } } /* At this point, there isn't any point in running the rest of the task if:
       * - We didn't specify any stylesheet links in the options object
       * - We couldn't find any stylesheet links in the HTML itself
       * - We weren't passed a string of raw CSS in addition to, or to replace
       *     either of the above
       */ if ( ! _ . flatten ( stylesheets ) . length ) { throw new Error ( 'UnCSS: no stylesheets found' ) ; } /* OK, so we have some CSS to work with!
       * Three steps:
       * - Parse the CSS
       * - Remove the unused rules
       * - Return the optimized CSS as a string
       */ const cssStr = stylesheets . join ( ' \n' ) ; let pcss , report ; try { pcss = postcss . parse ( cssStr ) ; } catch ( err ) { /* Try and construct a helpful error message */ throw utility . parseErrorMessage ( err , cssStr ) ; } return uncss ( pages , pcss , options . ignore ) . then ( ( [ css , rep ] ) => { let newCssStr = '' ; postcss . stringify ( css , ( result ) => { newCssStr += result ; } ) ; if ( options . report ) { report = { original : cssStr , selectors : rep } ; } return [ newCssStr , report ] ; } ) ; }