unified

Project: vfile/vfile-statistics

Package: vfile-statistics@2.0.0

  1. Dependents: 0
  2. vfile utility to count messages per category: failures, warnings, etc
  1. util 147
  2. utility 143
  3. file 34
  4. virtual 19
  5. vfile 17
  6. vfile-util 15
  7. message 8
  8. count 4

vfile-statistics

Build Coverage Downloads Size Sponsors Backers Chat

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 12.20+, 14.14+, or 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)

Pass a vfile, list of vfiles, or a list of messages (file.messages), get counts per category.

Returns

An object with the following fields set to numbers:

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 12.20+, 14.14+, 16.0+, and 18.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