Set the `stat` property on a file object. Abstraction from vinyl-fs to support stream or non-stream usage.
npm install file-stat> Set the stat property on a file object. Abstraction from vinyl-fs to support stream or non-stream usage.
Install with npm:
``sh`
$ npm install --save file-stat
This is inspired by the file.stat code in vinyl-fs. I needed a function that essentially did the same thing but could be used with either stream or non-stream code.
`js
var through = require('through2');
var stats = require('file-stat');
function toStream(fp) {
var stream = through.obj();
stream.write({path: fp});
stream.end();
return stream;
}
toStream('README.md')
.pipe(stats())
.on('data', function (file) {
// adds stat object to file
console.log(file.stat);
})
.on('end', function () {
console.log('Done.');
});
`
The sync methods use getters/setters to lazily add stat or lstat to the file object.
Asynchronously add a stat property from fs.stat to the given file object.
Params
* file {Object}: File objectcb
* {Function}
Example
`js`
var File = require('vinyl');
var stats = require('{%= name %}');
stats.stat(new File({path: 'README.md'}), function(err, file) {
console.log(file.stat.isFile());
//=> true
});
Asynchronously add a lstat property from fs.lstat to the given file object.
Params
* file {Object}: File objectcb
* {Function}
Example
`js`
var File = require('vinyl');
var stats = require('{%= name %}');
stats.lstat(new File({path: 'README.md'}), function(err, file) {
console.log(file.lstat.isFile());
//=> true
});
Synchronously add a stat property from fs.stat to the given file object.
Params
* file {Object}: File objectcb
* {Function}
Example
`js`
var File = require('vinyl');
var stats = require('{%= name %}');
var file = new File({path: 'README.md'});
stats.statSync(file);
console.log(file.stat.isFile());
//=> true
Synchronously add a lstat property from fs.lstat to the given file object.
Params
* file {Object}: File objectcb
* {Function}
Example
`js`
var File = require('vinyl');
var stats = require('{%= name %}');
var file = new File({path: 'README.md'});
stats.statSync(file);
console.log(file.lstat.isFile());
//=> true
v0.2.0
* adds .lstat, .stat, .lstatSync and .statSync methods.getStats
* the async method was renamed to .stat for consistency with the added methods
* file-contents: Set the contents property on a file object. Abstraction from vinyl-fs to support stream or… more | contentsstat property on a file object. Abstraction from vinyl-fs to support stream or non-stream usage."" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">homepage
* file-symlinks: Resolve symlinks and expose the property on a file object. | stat property on a file object."" class="text-primary hover:underline" target="_blank" rel="noopener noreferrer">homepage
* stream-loader: create a read stream from a glob of files. can be used as a loader-cache… more | homepage
* vinyl-fs: Vinyl adapter for the file system | homepage
* vinyl: Virtual file format. | homepage
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
_(This project's readme.md is generated by verb, please don't edit the readme directly. Any changes to the readme must be made in the .verb.md readme template.)_
To generate the readme, run the following command:
`sh`
$ npm install -g verbose/verb#dev verb-generate-readme && verb
Running and reviewing unit tests is a great way to get familiarized with a library and its API. You can install dependencies and run tests with the following command:
`sh``
$ npm install && npm test
Jon Schlinkert
* github/jonschlinkert
* twitter/jonschlinkert
Copyright © 2017, Jon Schlinkert.
MIT
*
_This file was generated by verb-generate-readme, v0.4.2, on February 02, 2017._