diff options
Diffstat (limited to 'assets/node_modules/@types/vfile-message/node_modules/vfile-message/index.js')
-rw-r--r-- | assets/node_modules/@types/vfile-message/node_modules/vfile-message/index.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/assets/node_modules/@types/vfile-message/node_modules/vfile-message/index.js b/assets/node_modules/@types/vfile-message/node_modules/vfile-message/index.js new file mode 100644 index 0000000..c913753 --- /dev/null +++ b/assets/node_modules/@types/vfile-message/node_modules/vfile-message/index.js @@ -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 +} |