Skip to main content
Deno 2 is finally here 🎉️
Learn more
Latest
class Processor
Re-export
import { Processor } from "https://deno.land/x/postcss@8.4.16/lib/postcss.js";

Contains plugins to process CSS. Create one Processor instance, initialize its plugins, and then use that instance on numerous CSS files.

const processor = postcss([autoprefixer, postcssNested])
processor.process(css1).then(result => console.log(result.css))
processor.process(css2).then(result => console.log(result.css))

Constructors

new
Processor(plugins?: AcceptedPlugin[])

Properties

Plugins added to this processor.

const processor = postcss([autoprefixer, postcssNested])
processor.plugins.length //=> 2
version: string

Current PostCSS version.

if (result.processor.version.split('.')[0] !== '6') {
  throw new Error('This plugin works only with PostCSS 6')
}

Methods

process(css:
| string
| { toString(): string; }
| Root
, options?: ProcessOptions
): LazyResult | NoWorkResult

Parses source CSS and returns a LazyResult Promise proxy. Because some plugins can be asynchronous it doesn’t make any transformations. Transformations will be applied in the LazyResult methods.

processor.process(css, { from: 'a.css', to: 'a.out.css' })
  .then(result => {
     console.log(result.css)
  })
use(plugin: AcceptedPlugin): this

Adds a plugin to be used as a CSS processor.

PostCSS plugin can be in 4 formats:

  • A plugin in Plugin format.
  • A plugin creator function with pluginCreator.postcss = true. PostCSS will call this function without argument to get plugin.
  • A function. PostCSS will pass the function a @{link Root} as the first argument and current Result instance as the second.
  • Another Processor instance. PostCSS will copy plugins from that instance into this one.

Plugins can also be added by passing them as arguments when creating a postcss instance (see [postcss(plugins)]).

Asynchronous plugins should return a Promise instance.

const processor = postcss()
  .use(autoprefixer)
  .use(postcssNested)