vfile-reporter-json
!Buildbuild-badgebuild
!Coveragecoverage-badgecoverage
!Downloadsdownloads-badgedownloads
!Sizesize-badgesize
!Sponsorssponsors-badgecollective
!Backersbackers-badgecollective
!Chatchat-badgechatvfile utility to create a report in machine readable JSON.
Contents
* [`reporterJson(files[, options])`](#reporterjsonfiles-options)
* [`JsonFile`](#jsonfile)
* [`JsonMessage`](#jsonmessage)
* [`Options`](#options)
What is this?
This package is likevfile-reporter
vfile-reporter but it outputs machine
readable JSON.When should I use this?
You can use this when you need to serialize lint results for machines, usevfile-reporter
itself for humans.Install
This package is ESM onlyesm. In Node.js (version 16+), install with npm:npm install vfile-reporter-json
In Deno with
esm.sh
esmsh:import {reporterJson} from 'https://esm.sh/vfile-reporter-json@4'
In browsers with
esm.sh
esmsh:<script type="module">
import {reporterJson} from 'https://esm.sh/vfile-reporter-json@4?bundle'
</script>
Use
import {VFile} from 'vfile'
import {reporterJson} from 'vfile-reporter-json'
const one = new VFile({path: 'test/fixture/1.js'})
const two = new VFile({path: 'test/fixture/2.js'})
one.message('Warning!', {line: 2, column: 4})
console.log(reporterJson([one, two]))
Yields:
[{"path":"test/fixture/1.js","cwd":"/Users/tilde/Projects/oss/vfile-reporter-json","history":["test/fixture/1.js"],"messages":[{"column":4,"fatal":false,"line":2,"place":{"line":2,"column":4},"reason":"Warning!"}]},{"path":"test/fixture/2.js","cwd":"/Users/tilde/Projects/oss/vfile-reporter-json","history":["test/fixture/2.js"],"messages":[]}]
API
This package exports the identifierreporterJson
api-reporter-json.
That identifier is also the default export.reporterJson(files[, options])
Create a serialized JSON report from one file or multiple files.Parameters
files
(Array<VFile>
vfile orVFile
)
— file or files to report
options
(Options
api-options, default:{}
)
— configuration
Returns
Report as serialized JSON (string
).Reporters must return strings, which is why serialized JSON is exposed. You can parse the result with
JSON.parse
, in which case you will get
Array<JsonFile>
api-json-file.JsonFile
JSON file (TypeScript type).Fields
cwd
(string
)
— base of `path`
history
(Array<string>
)
— list of filepaths the file moved between; the first is the original path
and the last is the current path
messages
(Array<JsonMessage>
api-json-message)
— list of filepaths the file moved between; the first is the original path
and the last is the current path
path
(string
)
— full path (example: `'~/index.min.js'`)
JsonMessage
JSON message (TypeScript type).Fields
ancestors
(Array<Node>
unist-node orundefined
)
— stack of ancestor nodes surrounding 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`: change likely not needed
line
(number
orundefined
)
— starting line of message
place
(Point
unist-point,Position
unist-position, or
`undefined`)
— place of message
reason
(string
)
— reason for message, should use markdown
ruleId
(string | null
)
— category of message (example: `'my-rule'`)
source
(string | null
)
— namespace of message (example: `'my-package'`)
actual
(string | null | undefined
)
— specify the source value that’s being reported, which is deemed incorrect
expected
(Array<string> | null | undefined
)
— suggest acceptable values that can be used instead of `actual`
note
(string | null | undefined
)
— long form description of the message, should use markdown
url
(string | null | undefined
)
— link to docs for the message; this must be an absolute URL that can be
passed as `x` to `new URL(x)`
Options
Configuration (TypeScript type).Fields
pretty
(boolean
,number
, orstring
, default:0
)
— value of `space` of
[`JSON.stringify(x, undefined, space)`][json-stringify]
quiet
(boolean
, default:false
)
— do not show files without messages
silent
(boolean
, default:false
)
— show errors only; this does not show info and warning messages; also sets
`quiet` to `true`
Types
This package is fully typed with TypeScript. It exports the additional typesJsonFile
api-json-file,
JsonMessage
api-json-message, and Options
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-reporter-json@^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.