vfile-message

vfile utility to create a virtual message

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
vfile-message
1014.0.210 months ago6 years agoMinified + gzip package size for vfile-message in KB

Readme

vfile-message
!Buildbuild-badgebuild !Coveragecoverage-badgecoverage !Downloadsdownloads-badgedownloads !Sizesize-badgesize !Sponsorssponsors-badgecollective !Backersbackers-badgecollective !Chatchat-badgechat
Create 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 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 onlyesm. In Node.js (version 16+), install with npm:
npm install vfile-message

In Deno with esm.shesmsh:
import {VFileMessage} from 'https://esm.sh/vfile-message@4'

In browsers with esm.shesmsh:
<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 VFileMessageapi-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)
β€” configuration.
Extends
Errormdn-error.
Returns
Instance of VFileMessage.
Fields
β€” stack of (inclusive) ancestor nodes surrounding the message
β€” original error cause of the message
  • column (number or undefined)
β€” starting column of message
  • fatal (boolean or undefined)
β€” state of problem; `true`: error, file not usable; `false`: warning,
change may be needed; `undefined`: info, change likely not needed
  • line (number or undefined)
β€” starting line of message
β€” place of message
  • reason (string)
β€” reason for message (should use markdown)
  • ruleId (string or undefined, example: 'my-rule')
β€” category of message
  • source (string or undefined, example: 'my-package')
β€” namespace of message

Options

Configuration (TypeScript type).
Fields
β€” stack of (inclusive) ancestor nodes surrounding the message
β€” original error cause of the message
β€” 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 the VFileMessage, 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 type Optionsapi-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.mdcontributing in vfile/.githubhealth for ways to get started. See support.mdsupport 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.

License

MITlicense Β© Titus Wormerauthor