You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.1 KiB
42 lines
1.1 KiB
'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)
|
|
|