|
'use strict' |
|
|
|
let Container = require('./container') |
|
let Parser = require('./parser') |
|
let Input = require('./input') |
|
|
|
function parse(css, opts) { |
|
let input = new Input(css, opts) |
|
let parser = new Parser(input) |
|
try { |
|
parser.parse() |
|
} catch (e) { |
|
if (process.env.NODE_ENV !== 'production') { |
|
if (e.name === 'CssSyntaxError' && opts && opts.from) { |
|
if (/\.scss$/i.test(opts.from)) { |
|
e.message += |
|
'\nYou tried to parse SCSS with ' + |
|
'the standard CSS parser; ' + |
|
'try again with the postcss-scss parser' |
|
} else if (/\.sass/i.test(opts.from)) { |
|
e.message += |
|
'\nYou tried to parse Sass with ' + |
|
'the standard CSS parser; ' + |
|
'try again with the postcss-sass parser' |
|
} else if (/\.less$/i.test(opts.from)) { |
|
e.message += |
|
'\nYou tried to parse Less with ' + |
|
'the standard CSS parser; ' + |
|
'try again with the postcss-less parser' |
|
} |
|
} |
|
} |
|
throw e |
|
} |
|
|
|
return parser.root |
|
} |
|
|
|
module.exports = parse |
|
parse.default = parse |
|
|
|
Container.registerParse(parse) |
|
|