2.2.0 • Published 10 months ago
pub-src-fs v2.2.0
pub-src-fs
Default file system source for pub-server and pub-generator
- provides
get()
andput()
for bulk reads and writes - globs and descends directories
- assumes that all files with non-binary extensions are utf-8 text
src(options)
var src = require('pub-src-fs');
// instantiate source on path
// options become properties of source
var source = src( { path:'.', glob:'**/*.js', depth:2, writable:true } );
source.get(function(err, files) {
if (err) return console.log(err);
console.log(_.pluck(files, 'path'));
});
source.path
- recurses directories starting with
path
- omits any directories starting with '.'
- results will not include the path, just a /
source.glob
glob
is a node-glob pattern- in order to support recursive descent on other systems (like github) this implementation does not use the glob library to walk directories
- instead it walks directories and then calls minimatch to test the files in those directories.
- because
path
is used as the root for globbing, globstars in the middle of the pattern are unlikely
source.depth
depth
limits the depth of tree traversal when there is globstar- this is useful for avoiding symlink cycles and improving performance
source.writable
- required true for successful .put()
source.writeOnly
- disables reading with .get()
source.dirsFirst
- if
dirsFirst
is true, entries within each directory will be returned with directories before files instead of the default (files first)
source.dirsSame
- if
dirsSame
is true, directories and files sort together (overrides dirsFirst)
source.get(cb)
get()
fetches all matching files in one async operation- the result is an array of file objects each with a
path:
and atext:
property (for non-binary files), or abuffer:
property (for binary files) - the array is sorted alphabetically by path
- results do not include directories, but do include files in subdirectories
- if the source is writable,
get()
is atomic with respect toput()
or othersource.get()
operations
[ { path: '/fs-base.js',
text: '...' },
{ path: '/pub-src-fs.js',
text: '...' } ]
source.put(files, cb)
put()
does nothing unlesswritable
is set on the source- it writes an array of file objects back to the file system overwriting existing files
- there is no partial file write but the array may contain a subset of the files read via
get()
put()
is atomic with respect tosource.get()
or othersource.put()
operationsput()
tries to avoid file corruption by writing to a temp location and then renaming filesput()
returns an array of the paths written
source.put(files, function(err, result) {
if (err) return console.log(err);
console.log(result);
});
2.2.0
10 months ago
2.1.3
3 years ago
2.1.2
5 years ago
2.1.1
5 years ago
2.1.0
5 years ago
2.0.10
5 years ago
2.0.9
5 years ago
2.0.8
6 years ago
2.0.7
6 years ago
2.0.6
6 years ago
2.0.5
6 years ago
2.0.3
6 years ago
2.0.2
6 years ago
2.0.1
6 years ago
2.0.0
6 years ago
1.5.3
6 years ago
1.5.2
6 years ago
1.5.1
6 years ago
1.5.0
7 years ago
1.4.5
10 years ago
1.4.4
10 years ago
1.4.3
10 years ago
1.4.2
10 years ago
1.4.1
10 years ago
1.4.0
10 years ago
1.3.4
10 years ago
1.3.3
10 years ago
1.3.2
10 years ago
1.3.1
10 years ago
1.3.0
10 years ago
1.2.1
10 years ago
1.2.0
10 years ago
1.1.0
10 years ago
1.0.0
10 years ago
0.5.1
10 years ago
0.5.0
10 years ago