vfile-statistics
vfile utility to count messages per category (fatal, warn, info, etc).
Contents
What is this?
This tiny package gives you stats about messages in files.
When should I use this?
This is really tiny, you could do it yourself, but this is useful as a building
block.
Install
This package is ESM only.
In Node.js (version 14.14+ and 16.0+), install with npm:
npm install vfile-statistics
In Deno with esm.sh
:
import {statistics} from 'https://esm.sh/vfile-statistics@2'
In browsers with esm.sh
:
<script type="module">
import {statistics} from 'https://esm.sh/vfile-statistics@2?bundle'
</script>
Use
import {VFile} from 'vfile'
import {statistics} from 'vfile-statistics'
const file = new VFile({path: '~/example.md'})
file.message('This could be better')
file.message('That could be better')
try {
file.fail('This is terribly wrong')
} catch {}
file.info('This is perfect')
console.log(statistics(file))
Yields:
{fatal: 1, nonfatal: 3, warn: 2, info: 1, total: 4}
API
This package exports the identifier statistics
.
There is no default export.
statistics(file)
Get stats for a file, list of files, or list of messages.
Parameters
file
(VFile
, VFileMessage
,
Array<VFile | VFileMessage>
, optional)
— file, message, or list of files or messages.
Returns
Statistics (Statistics
).
Statistics
Statistics (TypeScript type).
Fields
fatal
— fatal errors (fatal: true
)warn
— warning messages (fatal: false
)info
— informational messages (fatal: null | undefined
)nonfatal
— warning or info messagestotal
— all messages
Types
This package is fully typed with TypeScript.
It exports the additional type Statistics
.
Compatibility
Projects maintained by the unified collective are compatible with all maintained
versions of Node.js.
As of now, that is Node.js 14.14+ and 16.0+.
Our projects sometimes work with older versions, but this is not guaranteed.
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