You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
176 lines
4.5 KiB
176 lines
4.5 KiB
import Result, { Message, ResultOptions } from './result.js' |
|
import { SourceMap } from './postcss.js' |
|
import Processor from './processor.js' |
|
import Warning from './warning.js' |
|
import Root from './root.js' |
|
|
|
/** |
|
* A Promise proxy for the result of PostCSS transformations. |
|
* |
|
* A `LazyResult` instance is returned by `Processor#process`. |
|
* |
|
* ```js |
|
* const lazy = postcss([autoprefixer]).process(css) |
|
* ``` |
|
*/ |
|
export default class LazyResult implements PromiseLike<Result> { |
|
/** |
|
* 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>['then'] |
|
|
|
/** |
|
* 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>['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>['finally'] |
|
|
|
/** |
|
* @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) |
|
|
|
/** |
|
* Returns the default string description of an object. |
|
* Required to implement the Promise interface. |
|
*/ |
|
get [Symbol.toStringTag](): string |
|
|
|
/** |
|
* Returns a `Processor` instance, which will be used |
|
* for CSS transformations. |
|
*/ |
|
get processor(): Processor |
|
|
|
/** |
|
* Options from the `Processor#process` call. |
|
*/ |
|
get opts(): ResultOptions |
|
|
|
/** |
|
* 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 |
|
|
|
/** |
|
* 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 |
|
* 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#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(): Root |
|
|
|
/** |
|
* 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[] |
|
|
|
/** |
|
* Processes input CSS through synchronous plugins |
|
* and calls `Result#warnings`. |
|
* |
|
* @return Warnings from plugins. |
|
*/ |
|
warnings(): Warning[] |
|
|
|
/** |
|
* Alias for the `LazyResult#css` property. |
|
* |
|
* ```js |
|
* lazy + '' === lazy.css |
|
* ``` |
|
* |
|
* @return Output CSS. |
|
*/ |
|
toString(): string |
|
|
|
/** |
|
* Run plugin in sync way and return `Result`. |
|
* |
|
* @return Result with output content. |
|
*/ |
|
sync(): Result |
|
|
|
/** |
|
* Run plugin in async way and return `Result`. |
|
* |
|
* @return Result with output content. |
|
*/ |
|
async(): Promise<Result> |
|
}
|
|
|