JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 517
  • Score
    100M100P100Q94453F
  • License MIT

readable stream of file paths + stat objects

Package Exports

  • ls-stream
  • ls-stream/fs-base.js
  • ls-stream/fs-browser.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ls-stream) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

ls-stream

a readable stream of file and directories paths and entries.

var ls = require('ls-stream')

ls('.git')
    .on('data', console.log.bind(console))

API

ls([fs,] directory) -> ls stream

create a readable stream of entry objects.

will start emitting data on next tick unless paused.

users may optionally provide their own fs object if native fs is not available for whatever reason (e.g., in browser).

'data' Entry object

{ path: "path/to/file-or-dir"
, stat: fs.Stat object }

Entry.ignore([bool=true]) -> undefined

If called on the same event loop turn as the event is received, prevents recursing into this directory (or is a no-op if the entry represents a file). Optionally takes a single argument which defaults to true to set the "ignored" status.

var through = require('through')
  , ls = require('ls-stream')

ls('/path')
  .pipe(through(function(entry) {
    console.log(entry.path)
    if(entry.path == "/path/something") {
      // if we see "/path/something" *don't* list files
      // and dirs that it contains.
      entry.ignore()
    }
  }))

Warning: As aforementioned, this only works if the entry is ignored on the same event loop turn. For example, the following code would fail to ignore the given entry:

// WARNING: this will not work:
ls('/path')
  .pipe(through(function(entry) {
    // by the time we tell the entry that it
    // should be ignored, `ls` has already
    // recursed into it!
    setTimeout(function() {
      entry.ignore()
    }, 0)
  }))

license

MIT