to-vfile

vfile utility to create a vfile from a filepath

Usage no npm install needed!

<script type="module">
  import toVfile from 'https://cdn.skypack.dev/to-vfile';
</script>

README

to-vfile

Build Coverage Downloads Sponsors Backers Chat

Create a vfile from a filepath. Optionally populates them from the file system as well. Can write virtual files to file system too.

Install

This package is ESM only: Node 12+ is needed to use it and it must be imported instead of required.

npm:

npm install to-vfile

Use

import {toVFile, readSync} from 'to-vfile'

console.log(toVFile('readme.md'))
console.log(toVFile(new URL('./readme.md', import.meta.url)))
console.log(readSync('.git/HEAD'))
console.log(readSync('.git/HEAD', 'utf8'))

Yields:

VFile {
  data: {},
  messages: [],
  history: ['readme.md'],
  cwd: '/Users/tilde/projects/oss/to-vfile'
}
VFile {
  data: {},
  messages: [],
  history: ['readme.md'],
  cwd: '/Users/tilde/projects/oss/to-vfile'
}
VFile {
  data: {},
  messages: [],
  history: ['.git/HEAD'],
  cwd: '/Users/tilde/projects/oss/to-vfile',
  value: <Buffer 72 65 66 3a 20 72 65 66 73 2f 68 65 61 64 73 2f 6d 61 73 74 65 72 0a>
}
VFile {
  data: {},
  messages: [],
  history: ['.git/HEAD'],
  cwd: '/Users/tilde/projects/oss/to-vfile',
  value: 'ref: refs/heads/main\n'
}

API

This package exports the following identifiers: toVFile, read, readSync, write, and writeSync. There is no default export.

toVFile(options)

Create a virtual file. Works like the vfile constructor, except when options is string or Buffer, in which case it’s treated as {path: options} instead of {value: options}, or when options is a WHATWG URL object, in which case it’s treated as {path: fileURLToPath(options)}.

read(options[, encoding][, callback])

Creates a virtual file from options (toVFile(options)), reads the file from the file system and populates file.value with the result. If encoding is specified, it’s passed to fs.readFile. If callback is given, invokes it with either an error or the populated virtual file. If callback is not given, returns a Promise that is rejected with an error or resolved with the populated virtual file.

readSync(options[, encoding])

Like read but synchronous. Either throws an error or returns a populated virtual file.

write(options[, fsOptions][, callback])

Creates a virtual file from options (toVFile(options)), writes the file to the file system. fsOptions are passed to fs.writeFile. If callback is given, invokes it with an error, if any. If callback is not given, returns a Promise that is rejected with an error or resolved with the written virtual file.

writeSync(options[, fsOptions])

Like write but synchronous. Either throws an error or returns a populated virtual file.

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