191 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			191 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import Document from './document.js'
 | 
						|
import { SourceMap } from './postcss.js'
 | 
						|
import Processor from './processor.js'
 | 
						|
import Result, { Message, ResultOptions } from './result.js'
 | 
						|
import Root from './root.js'
 | 
						|
import Warning from './warning.js'
 | 
						|
 | 
						|
declare namespace LazyResult {
 | 
						|
  // eslint-disable-next-line @typescript-eslint/no-use-before-define
 | 
						|
  export { LazyResult_ as default }
 | 
						|
}
 | 
						|
 | 
						|
/**
 | 
						|
 * A Promise proxy for the result of PostCSS transformations.
 | 
						|
 *
 | 
						|
 * A `LazyResult` instance is returned by `Processor#process`.
 | 
						|
 *
 | 
						|
 * ```js
 | 
						|
 * const lazy = postcss([autoprefixer]).process(css)
 | 
						|
 * ```
 | 
						|
 */
 | 
						|
declare class LazyResult_<RootNode = Document | Root>
 | 
						|
  implements PromiseLike<Result<RootNode>>
 | 
						|
{
 | 
						|
  /**
 | 
						|
   * Processes input CSS through synchronous and asynchronous plugins
 | 
						|
   * and calls onRejected for each error thrown in any plugin.
 | 
						|
   *
 | 
						|
   * It implements standard Promise API.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * postcss([autoprefixer]).process(css).then(result => {
 | 
						|
   *   console.log(result.css)
 | 
						|
   * }).catch(error => {
 | 
						|
   *   console.error(error)
 | 
						|
   * })
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  catch: Promise<Result<RootNode>>['catch']
 | 
						|
 | 
						|
  /**
 | 
						|
   * Processes input CSS through synchronous and asynchronous plugins
 | 
						|
   * and calls onFinally on any error or when all plugins will finish work.
 | 
						|
   *
 | 
						|
   * It implements standard Promise API.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * postcss([autoprefixer]).process(css).finally(() => {
 | 
						|
   *   console.log('processing ended')
 | 
						|
   * })
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  finally: Promise<Result<RootNode>>['finally']
 | 
						|
 | 
						|
  /**
 | 
						|
   * Processes input CSS through synchronous and asynchronous plugins
 | 
						|
   * and calls `onFulfilled` with a Result instance. If a plugin throws
 | 
						|
   * an error, the `onRejected` callback will be executed.
 | 
						|
   *
 | 
						|
   * It implements standard Promise API.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * postcss([autoprefixer]).process(css, { from: cssPath }).then(result => {
 | 
						|
   *   console.log(result.css)
 | 
						|
   * })
 | 
						|
   * ```
 | 
						|
   */
 | 
						|
  then: Promise<Result<RootNode>>['then']
 | 
						|
 | 
						|
  /**
 | 
						|
   * An alias for the `css` property. Use it with syntaxes
 | 
						|
   * that generate non-CSS output.
 | 
						|
   *
 | 
						|
   * This property will only work with synchronous plugins.
 | 
						|
   * If the processor contains any asynchronous plugins
 | 
						|
   * it will throw an error.
 | 
						|
   *
 | 
						|
   * PostCSS runners should always use `LazyResult#then`.
 | 
						|
   */
 | 
						|
  get content(): string
 | 
						|
 | 
						|
  /**
 | 
						|
   * Processes input CSS through synchronous plugins, converts `Root`
 | 
						|
   * to a CSS string and returns `Result#css`.
 | 
						|
   *
 | 
						|
   * This property will only work with synchronous plugins.
 | 
						|
   * If the processor contains any asynchronous plugins
 | 
						|
   * it will throw an error.
 | 
						|
   *
 | 
						|
   * PostCSS runners should always use `LazyResult#then`.
 | 
						|
   */
 | 
						|
  get css(): string
 | 
						|
 | 
						|
  /**
 | 
						|
   * Processes input CSS through synchronous plugins
 | 
						|
   * and returns `Result#map`.
 | 
						|
   *
 | 
						|
   * This property will only work with synchronous plugins.
 | 
						|
   * If the processor contains any asynchronous plugins
 | 
						|
   * it will throw an error.
 | 
						|
   *
 | 
						|
   * PostCSS runners should always use `LazyResult#then`.
 | 
						|
   */
 | 
						|
  get map(): SourceMap
 | 
						|
 | 
						|
  /**
 | 
						|
   * Processes input CSS through synchronous plugins
 | 
						|
   * and returns `Result#messages`.
 | 
						|
   *
 | 
						|
   * This property will only work with synchronous plugins. If the processor
 | 
						|
   * contains any asynchronous plugins it will throw an error.
 | 
						|
   *
 | 
						|
   * PostCSS runners should always use `LazyResult#then`.
 | 
						|
   */
 | 
						|
  get messages(): Message[]
 | 
						|
 | 
						|
  /**
 | 
						|
   * Options from the `Processor#process` call.
 | 
						|
   */
 | 
						|
  get opts(): ResultOptions
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns a `Processor` instance, which will be used
 | 
						|
   * for CSS transformations.
 | 
						|
   */
 | 
						|
  get processor(): Processor
 | 
						|
 | 
						|
  /**
 | 
						|
   * Processes input CSS through synchronous plugins
 | 
						|
   * and returns `Result#root`.
 | 
						|
   *
 | 
						|
   * This property will only work with synchronous plugins. If the processor
 | 
						|
   * contains any asynchronous plugins it will throw an error.
 | 
						|
   *
 | 
						|
   * PostCSS runners should always use `LazyResult#then`.
 | 
						|
   */
 | 
						|
  get root(): RootNode
 | 
						|
 | 
						|
  /**
 | 
						|
   * Returns the default string description of an object.
 | 
						|
   * Required to implement the Promise interface.
 | 
						|
   */
 | 
						|
  get [Symbol.toStringTag](): string
 | 
						|
 | 
						|
  /**
 | 
						|
   * @param processor Processor used for this transformation.
 | 
						|
   * @param css       CSS to parse and transform.
 | 
						|
   * @param opts      Options from the `Processor#process` or `Root#toResult`.
 | 
						|
   */
 | 
						|
  constructor(processor: Processor, css: string, opts: ResultOptions)
 | 
						|
 | 
						|
  /**
 | 
						|
   * Run plugin in async way and return `Result`.
 | 
						|
   *
 | 
						|
   * @return Result with output content.
 | 
						|
   */
 | 
						|
  async(): Promise<Result<RootNode>>
 | 
						|
 | 
						|
  /**
 | 
						|
   * Run plugin in sync way and return `Result`.
 | 
						|
   *
 | 
						|
   * @return Result with output content.
 | 
						|
   */
 | 
						|
  sync(): Result<RootNode>
 | 
						|
 | 
						|
  /**
 | 
						|
   * Alias for the `LazyResult#css` property.
 | 
						|
   *
 | 
						|
   * ```js
 | 
						|
   * lazy + '' === lazy.css
 | 
						|
   * ```
 | 
						|
   *
 | 
						|
   * @return Output CSS.
 | 
						|
   */
 | 
						|
  toString(): string
 | 
						|
 | 
						|
  /**
 | 
						|
   * Processes input CSS through synchronous plugins
 | 
						|
   * and calls `Result#warnings`.
 | 
						|
   *
 | 
						|
   * @return Warnings from plugins.
 | 
						|
   */
 | 
						|
  warnings(): Warning[]
 | 
						|
}
 | 
						|
 | 
						|
declare class LazyResult<
 | 
						|
  RootNode = Document | Root
 | 
						|
> extends LazyResult_<RootNode> {}
 | 
						|
 | 
						|
export = LazyResult
 |