Awesome
glob-observable
Observable-based version of node-glob:
Match files using the patterns the shell uses, like stars and stuff.
const globObservable = require('glob-observable');
globObservable('*.js').subscribe({
next: ({path}) => console.log(path), // index.js, test.js, ...
complete: () => console.log('Glob completed.')
});
Installation
npm install glob-observable
API
const globObservable = require('glob-observable');
globObservable(pattern [, options])
pattern: string
(glob pattern)
options: Object
(glob
options with strict
and silent
default to true
)
Return: Observable
(zenparsing's implementation)
Match result
Type: Object
When the observable is subscribed, it starts glob search and send a result object to the observer on every match. Unlike node-glob's match
event, all results are deduplicated if nounique
option is disabled.
Each result object has the following properties:
cwd
Type: string
The current working directory where to search.
path
Type: string
The path of matched file or directory.
It'll be an absolute path if absolute
option is enabled, otherwise relative to cwd
. Also, it'll be resolved to a realpath if realpath
option is enabled.
stat
Type: fs.Stats
Information about the matched file or directory, for example mode and size. Only available if stat
option is enabled.
const globObservable = require('glob-observable');
const observable = globObservable('*.json', {stat: true});
const subscription = observable.subscribe(result => {
result.cwd; //=> '/Users/me/projects/...'
result.path; //=> 'package.json'
result.stat; //=> { dev: 16666220, mode: 16877, ... }
result.stat.isDirectory(); //=> false
});
// You can abort matching at any time.
subscription.unsubscribe();
License
ISC License © 2017 Shinnosuke Watanabe