53 lines
1.1 KiB
JavaScript
53 lines
1.1 KiB
JavaScript
'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
|
|
}
|