UNPKG

postcss-import

Version:
63 lines (51 loc) 1.23 kB
"use strict" // builtin tooling const path = require("path") // placeholder tooling let sugarss module.exports = function processContent( result, content, filename, options, postcss, ) { const { plugins } = options const ext = path.extname(filename) const parserList = [] // SugarSS support: if (ext === ".sss") { if (!sugarss) { /* c8 ignore next 3 */ try { sugarss = require("sugarss") } catch {} // Ignore } if (sugarss) return runPostcss(postcss, content, filename, plugins, [sugarss]) } // Syntax support: if (result.opts.syntax?.parse) { parserList.push(result.opts.syntax.parse) } // Parser support: if (result.opts.parser) parserList.push(result.opts.parser) // Try the default as a last resort: parserList.push(null) return runPostcss(postcss, content, filename, plugins, parserList) } async function runPostcss(postcss, content, filename, plugins, parsers) { let lastError const processor = postcss(plugins) for (const parser of parsers) { try { return await processor.process(content, { from: filename, parser, }) } catch (err) { lastError = err } } throw lastError }