123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- var SPLITTER = "\n at "
- module.exports = {
- sourceString: sourceString,
- message: formatMessage,
- try: tryCatch
- }
- function sourceString(source) {
- var message = "<css input>"
- if (source) {
- if (source.input && source.input.file) {
- message = source.input.file
- }
- if (source.start) {
- message += ":" + source.start.line + ":" + source.start.column
- }
- }
- return message
- }
- function formatMessage(message, source) {
- return sourceString(source) + ": " + message
- }
- function tryCatch(fn, source) {
- try {
- return fn()
- }
- catch (err) {
- err.originalMessage = err.message
- err.message = formatMessage(err.message, source)
-
- if (typeof source === "object") {
-
- if ((source.input && source.input.file) || source.start) {
- var stack = err.stack.split(SPLITTER)
- var firstStackItem = stack.shift()
- stack.unshift(sourceString(source))
- stack.unshift(firstStackItem)
- err.stack = stack.join(SPLITTER)
- }
- if (source.input && source.input.file) {
- err.fileName = source.input.file
- }
- if (source.start) {
- err.lineNumber = source.start.line
- err.columnNumber = source.start.column
- }
- }
- throw err
- }
- }
|