import {
ProcessOptions,
Plugin,
SourceMap,
TransformCallback,
Root,
Document,
Node,
Warning,
WarningOptions
} from './postcss.js'
import Processor from './processor.js'
declare namespace Result {
export interface Message {
/**
* Message type.
*/
type: string
* Source PostCSS plugin name.
plugin?: string
[others: string]: any
}
export interface ResultOptions extends ProcessOptions {
* The CSS node that was the source of the warning.
node?: Node
* Name of plugin that created this warning. `Result#warn` will fill it
* automatically with `Plugin#postcssPlugin` value.
// eslint-disable-next-line @typescript-eslint/no-use-before-define
export { Result_ as default }
* Provides the result of the PostCSS transformations.
*
* A Result instance is returned by `LazyResult#then`
* or `Root#toResult` methods.
* ```js
* postcss([autoprefixer]).process(css).then(result => {
* console.log(result.css)
* })
* ```
* const result2 = postcss.parse(css).toResult()
declare class Result_ {
* The Processor instance used for this transformation.
* for (const plugin of result.processor.plugins) {
* if (plugin.postcssPlugin === 'postcss-bad') {
* throw 'postcss-good is incompatible with postcss-bad'
* }
processor: Processor
* Contains messages from plugins (e.g., warnings or custom messages).
* Each message should have type and plugin properties.
* AtRule: {
* import: (atRule, { result }) {
* const importedFile = parseImport(atRule)
* result.messages.push({
* type: 'dependency',
* plugin: 'postcss-import',
* file: importedFile,
* parent: result.opts.from
messages: Result.Message[]
* Root node after all transformations.
* root.toResult().root === root
root: Root | Document
* Options from the `Processor#process` or `Root#toResult` call
* that produced this Result instance.]
* root.toResult(opts).opts === opts
opts: Result.ResultOptions
* A CSS string representing of `Result#root`.
* postcss.parse('a{}').toResult().css //=> "a{}"
css: string
* An instance of `SourceMapGenerator` class from the `source-map` library,
* representing changes to the `Result#root` instance.
* result.map.toJSON() //=> { version: 3, file: 'a.css', … }
* if (result.map) {
* fs.writeFileSync(result.opts.to + '.map', result.map.toString())
map: SourceMap
* Last runned PostCSS plugin.
lastPlugin: Plugin | TransformCallback
* @param processor Processor used for this transformation.
* @param root Root node after all transformations.
* @param opts Options from the `Processor#process` or `Root#toResult`.
constructor(processor: Processor, root: Root | Document, opts: Result.ResultOptions)
* An alias for the `Result#css` property.
* Use it with syntaxes that generate non-CSS output.
* result.css === result.content
get content(): string
* Returns for `Result#css` content.
* result + '' === result.css
* @return String representing of `Result#root`.
toString(): string
* Creates an instance of `Warning` and adds it to `Result#messages`.
* if (decl.important) {
* result.warn('Avoid !important', { node: decl, word: '!important' })
* @param text Warning message.
* @param opts Warning options.
* @return Created warning.
warn(message: string, options?: WarningOptions): Warning
* Returns warnings from plugins. Filters `Warning` instances
* from `Result#messages`.
* result.warnings().forEach(warn => {
* console.warn(warn.toString())
* @return Warnings from plugins.
warnings(): Warning[]
declare class Result extends Result_ {}
export = Result