Have ideas to improve npm?Join in the discussion! ¬Ľ

    file-stat

    1.0.0¬†‚Äʬ†Public¬†‚Äʬ†Published

    file-stat NPM version NPM monthly downloads NPM total downloads Linux Build Status

    Set the stat property on a file object. Abstraction from vinyl-fs to support stream or non-stream usage.

    Install

    Install with npm:

    $ 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.

    Usage

    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.');
      });
     

    API

    The sync methods use getters/setters to lazily add stat or lstat to the file object.

    .stat

    Asynchronously add a stat property from fs.stat to the given file object.

    Params

    • file {Object}: File object
    • cb {Function}

    Example

    var File = require('vinyl');
    var stats = require('{%= name %}');
    stats.stat(new File({path: 'README.md'}), function(err, file) {
      console.log(file.stat.isFile());
      //=> true
    });

    .lstat

    Asynchronously add a lstat property from fs.lstat to the given file object.

    Params

    • file {Object}: File object
    • cb {Function}

    Example

    var File = require('vinyl');
    var stats = require('{%= name %}');
    stats.lstat(new File({path: 'README.md'}), function(err, file) {
      console.log(file.lstat.isFile());
      //=> true
    });

    .statSync

    Synchronously add a stat property from fs.stat to the given file object.

    Params

    • file {Object}: File object
    • cb {Function}

    Example

    var File = require('vinyl');
    var stats = require('{%= name %}');
    var file = new File({path: 'README.md'});
    stats.statSync(file);
    console.log(file.stat.isFile());
    //=> true

    .lstatSync

    Synchronously add a lstat property from fs.lstat to the given file object.

    Params

    • file {Object}: File object
    • cb {Function}

    Example

    var File = require('vinyl');
    var stats = require('{%= name %}');
    var file = new File({path: 'README.md'});
    stats.statSync(file);
    console.log(file.lstat.isFile());
    //=> true

    History

    v0.2.0

    • adds .lstat, .stat, .lstatSync and .statSync methods
    • the .getStats async method was renamed to .stat for consistency with the added methods

    About

    Related projects

    Contributing

    Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.

    Building docs

    (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:

    $ npm install -g verbose/verb#dev verb-generate-readme && verb

    Running tests

    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:

    $ npm install && npm test

    Author

    Jon Schlinkert

    License

    Copyright © 2017, Jon Schlinkert. MIT


    This file was generated by verb-generate-readme, v0.4.2, on February 02, 2017.

    Install

    npm i file-stat

    DownloadsWeekly Downloads

    73,344

    Version

    1.0.0

    License

    MIT

    Last publish

    Collaborators

    • avatar