| 'use strict' |
| |
| var VMessage = require('vfile-message') |
| var VFile = require('./core.js') |
| |
| module.exports = VFile |
| |
| var proto = VFile.prototype |
| |
| proto.message = message |
| proto.info = info |
| proto.fail = fail |
| |
| // Slight backwards compatibility. Remove in the future. |
| proto.warn = message |
| |
| // Create a message with `reason` at `position`. When an error is passed in as |
| // `reason`, copies the stack. |
| function message(reason, position, origin) { |
| var filePath = this.path |
| var message = new VMessage(reason, position, origin) |
| |
| if (filePath) { |
| message.name = filePath + ':' + message.name |
| message.file = filePath |
| } |
| |
| 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 |
| } |