vfile-message
v4.0.2
Published
vfile utility to create a virtual message
Downloads
48,804,210
Maintainers
Readme
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`?',
{source: 'spell', ruleId: 'typo', place: {line: 1, column: 8}}
)
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.
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
Returns
Instance of VFileMessage
.
Fields
ancestors
(Array<Node>
orundefined
) — stack of (inclusive) ancestor nodes surrounding the messagecause
(Error
orundefined
) — original error cause of the messagecolumn
(number
orundefined
) — starting column of messagefatal
(boolean
orundefined
) — state of problem;true
: error, file not usable;false
: warning, change may be needed;undefined
: info, change likely not neededline
(number
orundefined
) — starting line of messageplace
(Point
,Position
orundefined
) — place of messagereason
(string
) — reason for message (should use markdown)ruleId
(string
orundefined
, example:'my-rule'
) — category of messagesource
(string
orundefined
, 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
orPosition
, 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 ofactual
url
(string
, optional) — link to docs for the message (this must be an absolute URL that can be passed asx
tonew URL(x)
)note
(string
, optional) — long form description of the message (you should use markdown)
Types
This package is fully typed with TypeScript.
It exports the additional type Options
.
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.