Skip to content

Commit

Permalink
Merge pull request #15309 from twbs/fix-customizer-compile-err-reporting
Browse files Browse the repository at this point in the history
Catch and properly report compile errors that Less.js's toCSS() can throw
  • Loading branch information
cvrebert committed Dec 5, 2014
2 parents 7e758f6 + 37183ed commit f110243
Showing 1 changed file with 14 additions and 8 deletions.
22 changes: 14 additions & 8 deletions docs/assets/js/src/customizer.js
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ window.onload = function () { // wait for load in a dumb way because B-0
'<div class="container">' +
'<a href="#bsCustomizerAlert" data-dismiss="alert" class="close pull-right" aria-label="Close" role="button"><span aria-hidden="true">&times;</span></a>' +
'<p class="bs-customizer-alert-text"><span class="glyphicon glyphicon-warning-sign" aria-hidden="true"></span><span class="sr-only">Warning:</span>' + msg + '</p>' +
(err.extract ? '<pre class="bs-customizer-alert-extract">' + err.extract.join('\n') + '</pre>' : '') +
(err.message ? $('<p></p>').text('Error: ' + err.message)[0].outerHTML : '') +
(err.extract ? $('<pre class="bs-customizer-alert-extract"></pre>').text(err.extract.join('\n'))[0].outerHTML : '') +
'</div>' +
'</div>').appendTo('body').alert()
throw err
Expand All @@ -38,7 +39,7 @@ window.onload = function () { // wait for load in a dumb way because B-0

function showCallout(msg, showUpTop) {
var callout = $('<div class="bs-callout bs-callout-danger">' +
'<h4>Attention!</h4>' +
'<h4>Attention!</h4>' +
'<p>' + msg + '</p>' +
'</div>')

Expand Down Expand Up @@ -258,12 +259,17 @@ window.onload = function () { // wait for load in a dumb way because B-0
filename: baseFilename + '.css'
})

parser.parse(lessSource, function (err, tree) {
if (err) {
return promise.reject(err)
parser.parse(lessSource, function (parseErr, tree) {
if (parseErr) {
return promise.reject(parseErr)
}
try {
intoResult[baseFilename + '.css'] = cw + tree.toCSS()
intoResult[baseFilename + '.min.css'] = cw + tree.toCSS({ compress: true })
}
catch (compileErr) {
return promise.reject(compileErr)
}
intoResult[baseFilename + '.css'] = cw + tree.toCSS()
intoResult[baseFilename + '.min.css'] = cw + tree.toCSS({ compress: true })
promise.resolve()
})

Expand Down Expand Up @@ -306,7 +312,7 @@ window.onload = function () { // wait for load in a dumb way because B-0
}
promise.resolve(result)
}).fail(function (err) {
showError('<strong>Ruh roh!</strong> Could not parse less files.', err)
showError('<strong>Ruh roh!</strong> Problem parsing or compiling Less files.', err)
promise.reject()
})

Expand Down

0 comments on commit f110243

Please sign in to comment.