unified

Project: vfile/vfile-is

Package: vfile-is@2.0.0

  1. Dependents: 0
  2. vfile utility to check if a vfile passes a test
  1. util 147
  2. utility 143
  3. file 34
  4. virtual 18
  5. text 18
  6. vfile 17
  7. vfile-util 15
  8. check 11
  9. processing 3
  10. is 3
  11. matches 2

vfile-is

Build Coverage Downloads Size Sponsors Backers Chat

vfile utility to check if a file passes a test.

Contents

What is this?

This package is a small utility that checks that a file is a certain file.

When should I use this?

Use this small utility if you find yourself repeating code for checking files.

Install

This package is ESM only. In Node.js (version 14.14+ and 16.0+), install with npm:

npm install vfile-is

In Deno with esm.sh:

import {is} from 'https://esm.sh/vfile-is@2'

In browsers with esm.sh:

<script type="module">
  import {is} from 'https://esm.sh/vfile-is@2?bundle'
</script>

Use

import {VFile} from 'to-vfile'
import {is} from 'vfile-is'

is(null, '.js') // => false
is({}, '.js') // => false

is(new VFile({path: 'index.js'}), '.js') // => true
is(new VFile({path: 'index.js'}), '.md') // => false
is(new VFile({path: 'index.js'}), 'index.js') // => true
is(new VFile({path: 'index.js'}), 'readme.md') // => false
is(new VFile({path: 'index.js'}), '*.js') // => true
is(new VFile({path: 'index.js'}), '*.md') // => false

is(new VFile({path: 'index.js'}), {stem: 'index'}) // => true
is(new VFile({path: 'index.js'}), {stem: 'readme'}) // => false

is(new VFile({path: 'index.js'}), {stem: {prefix: 'in'}}) // => true
is(new VFile({path: 'index.js'}), {stem: {prefix: 're'}}) // => false
is(new VFile({path: 'index.js'}), {stem: {suffix: 'ex'}}) // => true
is(new VFile({path: 'index.js'}), {stem: {suffix: 'me'}}) // => false

API

This package exports the identifiers convert and is. There is no default export.

is(file, check?)

Check if file is a specific file.

Converts check to an assertion and calls that assertion with file. If you’re doing a lot of checks, use convert.

Parameters
Returns

Whether file is a file and matches check (boolean).

convert(check)

Create an assertion from check.

Parameters
Returns

Assertion (Assert).

Assert

Check that a file is a vfile and passes a test (TypeScript type).

Parameters
Returns

Whether file is a file and matches a bound check (boolean).

Check

Different ways to check for a specific file (TypeScript type).

Type
type Check =
  | CheckFields
  | CheckFile
  | string
  | null
  | undefined
  | Array<CheckFields | CheckFile | string | null | undefined>

CheckFields

Object describing fields to values (TypeScript type).

Each key is a field in the file and each value is:

Type
type FieldPartial = {
  prefix?: string | null | undefined
  suffix?: string | null | undefined
}

type CheckFields = Record<
  string,
  FieldPartial | string | boolean | null | undefined
>

CheckFile

Check if a file passes a custom test (TypeScript type).

Parameters
Returns

Whether the test passed for this file (boolean, optional).

Types

This package is fully typed with TypeScript. It exports the additional types Assert, Check, CheckFields, and CheckFile.

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