ccc-tnt-psd2ui/npm-packages/mac-v3.4.+/postcss/lib/result.d.ts

207 lines
4.3 KiB
TypeScript
Raw Normal View History

2023-07-24 03:13:08 +00:00
import {
2023-09-06 01:51:55 +00:00
Document,
Node,
2023-07-24 03:13:08 +00:00
Plugin,
2023-09-06 01:51:55 +00:00
ProcessOptions,
Root,
2023-07-24 03:13:08 +00:00
SourceMap,
TransformCallback,
Warning,
WarningOptions
} from './postcss.js'
import Processor from './processor.js'
2023-09-06 01:51:55 +00:00
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 }
2023-07-24 03:13:08 +00:00
}
/**
* 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()
* ```
*/
2023-09-06 01:51:55 +00:00
declare class Result_<RootNode = Document | Root> {
2023-07-24 03:13:08 +00:00
/**
2023-09-06 01:51:55 +00:00
* A CSS string representing of `Result#root`.
2023-07-24 03:13:08 +00:00
*
* ```js
2023-09-06 01:51:55 +00:00
* postcss.parse('a{}').toResult().css //=> "a{}"
2023-07-24 03:13:08 +00:00
* ```
*/
2023-09-06 01:51:55 +00:00
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
2023-07-24 03:13:08 +00:00
/**
* 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
* })
* }
* }
* ```
*/
2023-09-06 01:51:55 +00:00
messages: Result.Message[]
2023-07-24 03:13:08 +00:00
/**
* Options from the `Processor#process` or `Root#toResult` call
* that produced this Result instance.]
*
* ```js
* root.toResult(opts).opts === opts
* ```
*/
2023-09-06 01:51:55 +00:00
opts: Result.ResultOptions
2023-07-24 03:13:08 +00:00
/**
2023-09-06 01:51:55 +00:00
* The Processor instance used for this transformation.
2023-07-24 03:13:08 +00:00
*
* ```js
2023-09-06 01:51:55 +00:00
* for (const plugin of result.processor.plugins) {
* if (plugin.postcssPlugin === 'postcss-bad') {
* throw 'postcss-good is incompatible with postcss-bad'
* }
* })
2023-07-24 03:13:08 +00:00
* ```
*/
2023-09-06 01:51:55 +00:00
processor: Processor
2023-07-24 03:13:08 +00:00
/**
2023-09-06 01:51:55 +00:00
* Root node after all transformations.
2023-07-24 03:13:08 +00:00
*
* ```js
2023-09-06 01:51:55 +00:00
* root.toResult().root === root
2023-07-24 03:13:08 +00:00
* ```
*/
2023-09-06 01:51:55 +00:00
root: RootNode
2023-07-24 03:13:08 +00:00
/**
* @param processor Processor used for this transformation.
* @param root Root node after all transformations.
* @param opts Options from the `Processor#process` or `Root#toResult`.
*/
2023-09-06 01:51:55 +00:00
constructor(processor: Processor, root: RootNode, opts: Result.ResultOptions)
2023-07-24 03:13:08 +00:00
/**
* 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[]
}
2023-09-06 01:51:55 +00:00
declare class Result<RootNode = Document | Root> extends Result_<RootNode> {}
export = Result