Create a vfile
from a filepath.
Optionally populates them from the file system as well.
Can write virtual files to file system too.
This package is ESM only:
Node 12+ is needed to use it and it must be import
ed instead of require
d.
npm:
npm install to-vfile
import {toVFile} from 'to-vfile'
console.log(toVFile('readme.md'))
console.log(toVFile.readSync('.git/HEAD'))
console.log(toVFile.readSync('.git/HEAD', 'utf8'))
Yields:
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'
}
This package exports the following identifiers: toVFile
.
There is no default export.
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}
.
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.
Like toVFile.read
but synchronous.
Either throws an error or returns a populated virtual file.
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.
Like toVFile.write
but synchronous.
Either throws an error or returns a populated virtual file.
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.