207 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			207 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import {
 | 
						|
  Document,
 | 
						|
  Node,
 | 
						|
  Plugin,
 | 
						|
  ProcessOptions,
 | 
						|
  Root,
 | 
						|
  SourceMap,
 | 
						|
  TransformCallback,
 | 
						|
  Warning,
 | 
						|
  WarningOptions
 | 
						|
} from './postcss.js'
 | 
						|
import Processor from './processor.js'
 | 
						|
 | 
						|
declare namespace Result {
 | 
						|
  export interface Message {
 | 
						|
    [others: string]: any
 | 
						|
 | 
						|
    /**
 | 
						|
     * Source PostCSS plugin name.
 | 
						|
     */
 | 
						|
    plugin?: string
 | 
						|
 | 
						|
    /**
 | 
						|
     * Message type.
 | 
						|
     */
 | 
						|
    type: string
 | 
						|
  }
 | 
						|
 | 
						|
  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
 | 
						|
  }
 | 
						|
 | 
						|
 | 
						|
  // 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)
 | 
						|
 * })
 | 
						|
 * ```
 | 
						|
 *
 | 
						|
 * ```js
 | 
						|
 * const result2 = postcss.parse(css).toResult()
 | 
						|
 * ```
 | 
						|
 */
 | 
						|
declare class Result_ {
 | 
						|
  /**
 | 
						|
   * A CSS string representing of `Result#root`.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * postcss.parse('a{}').toResult().css //=> "a{}"
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  css: string
 | 
						|
 | 
						|
  /**
 | 
						|
   * Last runned PostCSS plugin.
 | 
						|
   */
 | 
						|
  lastPlugin: Plugin | TransformCallback
 | 
						|
 | 
						|
  /**
 | 
						|
   * 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
 | 
						|
 | 
						|
  /**
 | 
						|
   * 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: Result.Message[]
 | 
						|
 | 
						|
  /**
 | 
						|
   * Options from the `Processor#process` or `Root#toResult` call
 | 
						|
   * that produced this Result instance.]
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * root.toResult(opts).opts === opts
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  opts: Result.ResultOptions
 | 
						|
 | 
						|
  /**
 | 
						|
   * 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
 | 
						|
 | 
						|
  /**
 | 
						|
   * Root node after all transformations.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * root.toResult().root === root
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  root: Document | Root
 | 
						|
 | 
						|
  /**
 | 
						|
   * @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: Document | Root, opts: Result.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[]
 | 
						|
}
 | 
						|
 | 
						|
declare class Result extends Result_ {}
 | 
						|
 | 
						|
export = Result
 |