Buckets:
| let Document = require('./document') | |
| let LazyResult = require('./lazy-result') | |
| let NoWorkResult = require('./no-work-result') | |
| let Root = require('./root') | |
| class Processor { | |
| constructor(plugins = []) { | |
| this.version = '8.5.6' | |
| this.plugins = this.normalize(plugins) | |
| } | |
| normalize(plugins) { | |
| let normalized = [] | |
| for (let i of plugins) { | |
| if (i.postcss === true) { | |
| i = i() | |
| } else if (i.postcss) { | |
| i = i.postcss | |
| } | |
| if (typeof i === 'object' && Array.isArray(i.plugins)) { | |
| normalized = normalized.concat(i.plugins) | |
| } else if (typeof i === 'object' && i.postcssPlugin) { | |
| normalized.push(i) | |
| } else if (typeof i === 'function') { | |
| normalized.push(i) | |
| } else if (typeof i === 'object' && (i.parse || i.stringify)) { | |
| if (process.env.NODE_ENV !== 'production') { | |
| throw new Error( | |
| 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' + | |
| 'one of the syntax/parser/stringifier options as outlined ' + | |
| 'in your PostCSS runner documentation.' | |
| ) | |
| } | |
| } else { | |
| throw new Error(i + ' is not a PostCSS plugin') | |
| } | |
| } | |
| return normalized | |
| } | |
| process(css, opts = {}) { | |
| if ( | |
| !this.plugins.length && | |
| !opts.parser && | |
| !opts.stringifier && | |
| !opts.syntax | |
| ) { | |
| return new NoWorkResult(this, css, opts) | |
| } else { | |
| return new LazyResult(this, css, opts) | |
| } | |
| } | |
| use(plugin) { | |
| this.plugins = this.plugins.concat(this.normalize([plugin])) | |
| return this | |
| } | |
| } | |
| module.exports = Processor | |
| Processor.default = Processor | |
| Root.registerProcessor(Processor) | |
| Document.registerProcessor(Processor) | |
Xet Storage Details
- Size:
- 1.74 kB
- Xet hash:
- 9904034053735be340c9d3a91f3779be372e0adba870a518a365f6ecf0f59c88
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.