| 'use strict' |
| |
| let CssSyntaxError = require('./css-syntax-error') |
| let Declaration = require('./declaration') |
| let LazyResult = require('./lazy-result') |
| let Container = require('./container') |
| let Processor = require('./processor') |
| let stringify = require('./stringify') |
| let fromJSON = require('./fromJSON') |
| let Document = require('./document') |
| let Warning = require('./warning') |
| let Comment = require('./comment') |
| let AtRule = require('./at-rule') |
| let Result = require('./result.js') |
| let Input = require('./input') |
| let parse = require('./parse') |
| let list = require('./list') |
| let Rule = require('./rule') |
| let Root = require('./root') |
| let Node = require('./node') |
| |
| function postcss(...plugins) { |
| if (plugins.length === 1 && Array.isArray(plugins[0])) { |
| plugins = plugins[0] |
| } |
| return new Processor(plugins) |
| } |
| |
| postcss.plugin = function plugin(name, initializer) { |
| // eslint-disable-next-line no-console |
| if (console && console.warn) { |
| // eslint-disable-next-line no-console |
| console.warn( |
| name + |
| ': postcss.plugin was deprecated. Migration guide:\n' + |
| 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' |
| ) |
| if (process.env.LANG && process.env.LANG.startsWith('cn')) { |
| /* c8 ignore next 7 */ |
| // eslint-disable-next-line no-console |
| console.warn( |
| name + |
| ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + |
| 'https://www.w3ctech.com/topic/2226' |
| ) |
| } |
| } |
| function creator(...args) { |
| let transformer = initializer(...args) |
| transformer.postcssPlugin = name |
| transformer.postcssVersion = new Processor().version |
| return transformer |
| } |
| |
| let cache |
| Object.defineProperty(creator, 'postcss', { |
| get() { |
| if (!cache) cache = creator() |
| return cache |
| } |
| }) |
| |
| creator.process = function (css, processOpts, pluginOpts) { |
| return postcss([creator(pluginOpts)]).process(css, processOpts) |
| } |
| |
| return creator |
| } |
| |
| postcss.stringify = stringify |
| postcss.parse = parse |
| postcss.fromJSON = fromJSON |
| postcss.list = list |
| |
| postcss.comment = defaults => new Comment(defaults) |
| postcss.atRule = defaults => new AtRule(defaults) |
| postcss.decl = defaults => new Declaration(defaults) |
| postcss.rule = defaults => new Rule(defaults) |
| postcss.root = defaults => new Root(defaults) |
| postcss.document = defaults => new Document(defaults) |
| |
| postcss.CssSyntaxError = CssSyntaxError |
| postcss.Declaration = Declaration |
| postcss.Container = Container |
| postcss.Processor = Processor |
| postcss.Document = Document |
| postcss.Comment = Comment |
| postcss.Warning = Warning |
| postcss.AtRule = AtRule |
| postcss.Result = Result |
| postcss.Input = Input |
| postcss.Rule = Rule |
| postcss.Root = Root |
| postcss.Node = Node |
| |
| LazyResult.registerPostcss(postcss) |
| |
| module.exports = postcss |
| postcss.default = postcss |