| import { |
| ProcessOptions, |
| Plugin, |
| SourceMap, |
| TransformCallback, |
| Root, |
| Document, |
| Node, |
| Warning, |
| WarningOptions |
| } from './postcss.js' |
| import Processor from './processor.js' |
| |
| 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. |
| */ |
| plugin?: string |
| } |
| |
| /** |
| * 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) |
| * }) |
| * ``` |
| * |
| * ```js |
| * const result2 = postcss.parse(css).toResult() |
| * ``` |
| */ |
| export default class Result { |
| /** |
| * The Processor instance used for this transformation. |
| * |
| * ```js |
| * 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. |
| * |
| * ```js |
| * AtRule: { |
| * import: (atRule, { result }) { |
| * const importedFile = parseImport(atRule) |
| * result.messages.push({ |
| * type: 'dependency', |
| * plugin: 'postcss-import', |
| * file: importedFile, |
| * parent: result.opts.from |
| * }) |
| * } |
| * } |
| * ``` |
| */ |
| messages: Message[] |
| |
| /** |
| * Root node after all transformations. |
| * |
| * ```js |
| * root.toResult().root === root |
| * ``` |
| */ |
| root: Root | Document |
| |
| /** |
| * Options from the `Processor#process` or `Root#toResult` call |
| * that produced this Result instance.] |
| * |
| * ```js |
| * root.toResult(opts).opts === opts |
| * ``` |
| */ |
| opts: ResultOptions |
| |
| /** |
| * A CSS string representing of `Result#root`. |
| * |
| * ```js |
| * 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. |
| * |
| * ```js |
| * result.map.toJSON() //=> { version: 3, file: 'a.css', … } |
| * ``` |
| * |
| * ```js |
| * 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: ResultOptions) |
| |
| /** |
| * An alias for the `Result#css` property. |
| * Use it with syntaxes that generate non-CSS output. |
| * |
| * ```js |
| * result.css === result.content |
| * ``` |
| */ |
| get content(): string |
| |
| /** |
| * Returns for `Result#css` content. |
| * |
| * ```js |
| * result + '' === result.css |
| * ``` |
| * |
| * @return String representing of `Result#root`. |
| */ |
| toString(): string |
| |
| /** |
| * Creates an instance of `Warning` and adds it to `Result#messages`. |
| * |
| * ```js |
| * 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`. |
| * |
| * ```js |
| * result.warnings().forEach(warn => { |
| * console.warn(warn.toString()) |
| * }) |
| * ``` |
| * |
| * @return Warnings from plugins. |
| */ |
| warnings(): Warning[] |
| } |