aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/postcss/lib/processor.js
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-13 21:34:48 -0800
commit76cb9c2a39d477a64824a985ade40507e3bbade1 (patch)
tree41e997aa9c6f538d3a136af61dae9424db2005a9 /vanilla/node_modules/postcss/lib/processor.js
parent819a39a21ac992b1393244a4c283bbb125208c69 (diff)
downloadneko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.gz
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.tar.bz2
neko-76cb9c2a39d477a64824a985ade40507e3bbade1.zip
feat(vanilla): add testing infrastructure and tests (NK-wjnczv)
Diffstat (limited to 'vanilla/node_modules/postcss/lib/processor.js')
-rw-r--r--vanilla/node_modules/postcss/lib/processor.js67
1 files changed, 67 insertions, 0 deletions
diff --git a/vanilla/node_modules/postcss/lib/processor.js b/vanilla/node_modules/postcss/lib/processor.js
new file mode 100644
index 0000000..8493687
--- /dev/null
+++ b/vanilla/node_modules/postcss/lib/processor.js
@@ -0,0 +1,67 @@
+'use strict'
+
+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)