vfile-message
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechatCreate vfile messages.
Contents
* [`VFileMessage(reason[, options])`](#vfilemessagereason-options)
* [`Options`](#options)
* [Well-known](#well-known)
What is this?
This package provides a (lint) message format.When should I use this?
In most cases, you can usefile.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 onlyesm. In Node.js (version 16+), install with npm:npm install vfile-message
In Deno with
esm.sh
esmsh:import {VFileMessage} from 'https://esm.sh/vfile-message@4'
In browsers with
esm.sh
esmsh:<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 identifierVFileMessage
api-vfile-message.
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
api-options, optional)
β configuration.
Extends
Error
mdn-error.Returns
Instance ofVFileMessage
.Fields
ancestors
(Array<Node>
unist-node orundefined
)
β stack of (inclusive) ancestor nodes surrounding the message
β original error cause of the message
column
(number
orundefined
)
β starting column of message
fatal
(boolean
orundefined
)
β state of problem; `true`: error, file not usable; `false`: warning,
change may be needed; `undefined`: info, change likely not needed
line
(number
orundefined
)
β starting line of message
place
(Point
unist-point,Position
unist-position orundefined
)
β place of message
reason
(string
)
β reason for message (should use markdown)
ruleId
(string
orundefined
, example:'my-rule'
)
β category of message
source
(string
orundefined
, example:'my-package'
)
β namespace of message
Options
Configuration (TypeScript type).Fields
ancestors
(Array<Node>
unist-node, optional)
β stack of (inclusive) ancestor nodes surrounding the message
β original error cause of the message
place
(Point
unist-point orPosition
unist-position, optional)
β place of message
ruleId
(string
, optional, example:'my-rule'
)
β category of message
source
(string
, optional, , example:'my-package'
)
β namespace of who sent the message
Well-known
Itβs OK to store custom data directly on theVFileMessage
, some of those are
handled by utilitiesutil.
The following fields are documented and typed here.Fields
actual
(string
, optional)
β specify the source value thatβs being reported, which is deemed incorrect
expected
(Array<string>
, optional)
β suggest acceptable values that can be used instead of `actual`
url
(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)
Types
This package is fully typed with TypeScript. It exports the additional typeOptions
api-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
Seecontributing.md
contributing in vfile/.github
health for ways to
get started.
See support.md
support for ways to get help.This project has a code of conductcoc. By interacting with this repository, organization, or community you agree to abide by its terms.