| '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 |
| } |