vfile-message

Create vfile messages.
Contents
What is this?
This package provides a (lint) message format.
When should I use this?
In most cases, you can use file.message from VFile itself, but in some cases you might not have a file, and still want to emit warnings or errors, in which case this can be used directly.
Install
This package is ESM only. In Node.js (version 16+), install with npm:
npm install vfile-message
In Deno with esm.sh:
import {VFileMessage} from 'https://esm.sh/vfile-message@4'
In browsers with esm.sh:
<script type="module">
import {VFileMessage} from 'https://esm.sh/vfile-message@4?bundle'
</script>
Use
import {VFileMessage} from 'vfile-message'
const message = new VFileMessage(
'Unexpected unknown word `braavo`, did you mean `bravo`?',
{place: {column: 8, line: 1}, ruleId: 'typo', source: 'spell'}
)
console.log(message)
Yields:
[1:8: Unexpected unknown word `braavo`, did you mean `bravo`?] {
reason: 'Unexpected unknown word `braavo`, did you mean `bravo`?',
line: 1,
column: 8,
ancestors: undefined,
cause: undefined,
fatal: undefined,
place: {line: 1, column: 8},
ruleId: 'typo',
source: 'spell'
}
API
This package exports the identifier VFileMessage. There is no default export. It exports the additional TypeScript type Options.
VFileMessage(reason[, options])
Create a message for reason.
πͺ¦ Note: also has obsolete signatures.
Parameters
reason (string) β reason for message (should use markdown)options (Options, optional) β configuration.
Extends
Error.
Returns
Instance of VFileMessage.
Fields
ancestors (Array<Node> or undefined) β stack of (inclusive) ancestor nodes surrounding the messagecause (Error or undefined) β original error cause of the messagecolumn (number or undefined) β starting column of messagefatal (boolean or undefined) β state of problem; true: error, file not usable; false: warning, change may be needed; undefined: info, change likely not neededline (number or undefined) β starting line of messageplace (Point, Position or undefined) β place of messagereason (string) β reason for message (should use markdown)ruleId (string or undefined, example: 'my-rule') β category of messagesource (string or undefined, example: 'my-package') β namespace of message
Options
Configuration (TypeScript type).
Fields
ancestors (Array<Node>, optional) β stack of (inclusive) ancestor nodes surrounding the messagecause (Error, optional) β original error cause of the messageplace (Point or Position, optional) β place of messageruleId (string, optional, example: 'my-rule') β category of messagesource (string, optional, , example: 'my-package') β namespace of who sent the message
Well-known
Itβs OK to store custom data directly on the VFileMessage, some of those are handled by utilities. The following fields are documented and typed here.
Fields
actual (string, optional) β specify the source value thatβs being reported, which is deemed incorrectexpected (Array<string>, optional) β suggest acceptable values that can be used instead of actualurl (string, optional) β link to docs for the message (this must be an absolute URL that can be passed as x to new URL(x))note (string, optional) β long form description of the message (you should use markdown)
Compatibility
Projects maintained by the unified collective are compatible with maintained versions of Node.js.
When we cut a new major release, we drop support for unmaintained versions of Node. This means we try to keep the current release line, vfile-message@^4, compatible with Node.js 16.
Contribute
See contributing.md in vfile/.github for ways to get started. See support.md for ways to get help.
This project has a code of conduct. By interacting with this repository, organization, or community you agree to abide by its terms.
License
MIT Β© Titus Wormer