AK-21/Graphite-Industrial-Intelligence
0
1'use strict'2 3let AtRule = require('./at-rule')4let Comment = require('./comment')5let Container = require('./container')6let CssSyntaxError = require('./css-syntax-error')7let Declaration = require('./declaration')8let Document = require('./document')9let fromJSON = require('./fromJSON')10let Input = require('./input')11let LazyResult = require('./lazy-result')12let list = require('./list')13let Node = require('./node')14let parse = require('./parse')15let Processor = require('./processor')16let Result = require('./result.js')17let Root = require('./root')18let Rule = require('./rule')19let stringify = require('./stringify')20let Warning = require('./warning')21 22function postcss(...plugins) {23 if (plugins.length === 1 && Array.isArray(plugins[0])) {24 plugins = plugins[0]25 }26 return new Processor(plugins)27}28 29postcss.plugin = function plugin(name, initializer) {30 let warningPrinted = false31 function creator(...args) {32 // eslint-disable-next-line no-console33 if (console && console.warn && !warningPrinted) {34 warningPrinted = true35 // eslint-disable-next-line no-console36 console.warn(37 name +38 ': postcss.plugin was deprecated. Migration guide:\n' +39 'https://evilmartians.com/chronicles/postcss-8-plugin-migration'40 )41 if (process.env.LANG && process.env.LANG.startsWith('cn')) {42 /* c8 ignore next 7 */43 // eslint-disable-next-line no-console44 console.warn(45 name +46 ': 里面 postcss.plugin 被弃用. 迁移指南:\n' +47 'https://www.w3ctech.com/topic/2226'48 )49 }50 }51 let transformer = initializer(...args)52 transformer.postcssPlugin = name53 transformer.postcssVersion = new Processor().version54 return transformer55 }56 57 let cache58 Object.defineProperty(creator, 'postcss', {59 get() {60 if (!cache) cache = creator()61 return cache62 }63 })64 65 creator.process = function (css, processOpts, pluginOpts) {66 return postcss([creator(pluginOpts)]).process(css, processOpts)67 }68 69 return creator70}71 72postcss.stringify = stringify73postcss.parse = parse74postcss.fromJSON = fromJSON75postcss.list = list76 77postcss.comment = defaults => new Comment(defaults)78postcss.atRule = defaults => new AtRule(defaults)79postcss.decl = defaults => new Declaration(defaults)80postcss.rule = defaults => new Rule(defaults)81postcss.root = defaults => new Root(defaults)82postcss.document = defaults => new Document(defaults)83 84postcss.CssSyntaxError = CssSyntaxError85postcss.Declaration = Declaration86postcss.Container = Container87postcss.Processor = Processor88postcss.Document = Document89postcss.Comment = Comment90postcss.Warning = Warning91postcss.AtRule = AtRule92postcss.Result = Result93postcss.Input = Input94postcss.Rule = Rule95postcss.Root = Root96postcss.Node = Node97 98LazyResult.registerPostcss(postcss)99 100module.exports = postcss101postcss.default = postcss102 