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.
46 lines
987 B
46 lines
987 B
'use strict' |
|
|
|
var VMessage = require('vfile-message') |
|
var VFile = require('./core.js') |
|
|
|
module.exports = VFile |
|
|
|
VFile.prototype.message = message |
|
VFile.prototype.info = info |
|
VFile.prototype.fail = fail |
|
|
|
// Create a message with `reason` at `position`. |
|
// When an error is passed in as `reason`, copies the stack. |
|
function message(reason, position, origin) { |
|
var message = new VMessage(reason, position, origin) |
|
|
|
if (this.path) { |
|
message.name = this.path + ':' + message.name |
|
message.file = this.path |
|
} |
|
|
|
message.fatal = false |
|
|
|
this.messages.push(message) |
|
|
|
return message |
|
} |
|
|
|
// Fail: creates a vmessage, associates it with the file, and throws it. |
|
function fail() { |
|
var message = this.message.apply(this, arguments) |
|
|
|
message.fatal = true |
|
|
|
throw message |
|
} |
|
|
|
// Info: creates a vmessage, associates it with the file, and marks the fatality |
|
// as null. |
|
function info() { |
|
var message = this.message.apply(this, arguments) |
|
|
|
message.fatal = null |
|
|
|
return message |
|
}
|
|
|