This commit is contained in:
94
node_modules/vfile-message/index.js
generated
vendored
Normal file
94
node_modules/vfile-message/index.js
generated
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
'use strict'
|
||||
|
||||
var stringify = require('unist-util-stringify-position')
|
||||
|
||||
module.exports = VMessage
|
||||
|
||||
// Inherit from `Error#`.
|
||||
function VMessagePrototype() {}
|
||||
VMessagePrototype.prototype = Error.prototype
|
||||
VMessage.prototype = new VMessagePrototype()
|
||||
|
||||
// Message properties.
|
||||
var proto = VMessage.prototype
|
||||
|
||||
proto.file = ''
|
||||
proto.name = ''
|
||||
proto.reason = ''
|
||||
proto.message = ''
|
||||
proto.stack = ''
|
||||
proto.fatal = null
|
||||
proto.column = null
|
||||
proto.line = null
|
||||
|
||||
// Construct a new VMessage.
|
||||
//
|
||||
// Note: We cannot invoke `Error` on the created context, as that adds readonly
|
||||
// `line` and `column` attributes on Safari 9, thus throwing and failing the
|
||||
// data.
|
||||
function VMessage(reason, position, origin) {
|
||||
var parts
|
||||
var range
|
||||
var location
|
||||
|
||||
if (typeof position === 'string') {
|
||||
origin = position
|
||||
position = null
|
||||
}
|
||||
|
||||
parts = parseOrigin(origin)
|
||||
range = stringify(position) || '1:1'
|
||||
|
||||
location = {
|
||||
start: {line: null, column: null},
|
||||
end: {line: null, column: null}
|
||||
}
|
||||
|
||||
// Node.
|
||||
if (position && position.position) {
|
||||
position = position.position
|
||||
}
|
||||
|
||||
if (position) {
|
||||
// Position.
|
||||
if (position.start) {
|
||||
location = position
|
||||
position = position.start
|
||||
} else {
|
||||
// Point.
|
||||
location.start = position
|
||||
}
|
||||
}
|
||||
|
||||
if (reason.stack) {
|
||||
this.stack = reason.stack
|
||||
reason = reason.message
|
||||
}
|
||||
|
||||
this.message = reason
|
||||
this.name = range
|
||||
this.reason = reason
|
||||
this.line = position ? position.line : null
|
||||
this.column = position ? position.column : null
|
||||
this.location = location
|
||||
this.source = parts[0]
|
||||
this.ruleId = parts[1]
|
||||
}
|
||||
|
||||
function parseOrigin(origin) {
|
||||
var result = [null, null]
|
||||
var index
|
||||
|
||||
if (typeof origin === 'string') {
|
||||
index = origin.indexOf(':')
|
||||
|
||||
if (index === -1) {
|
||||
result[1] = origin
|
||||
} else {
|
||||
result[0] = origin.slice(0, index)
|
||||
result[1] = origin.slice(index + 1)
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
Reference in New Issue
Block a user