@ygor/files
v6.0.1
Published
A bulk file transformer.
Downloads
132
Readme
@ygor/files
A no-frills file transformer. Built on promises to work wonderfully with async
and await
in Node.js 8 and above. Part of the Ygor toolkit.
Node is the CLI, npm is the plugin system. Go nuts.
Install
$ npm install --save-dev @ygor/files
Usage
const { find, read, write } = require('@ygor/files');
const { transform } = require('babel-core');
find('src/**/*.js')
.map(read())
.map(async file => {
const { code } = await transform(file.contents);
file.contents = code;
return file;
})
.map(write('dest'))
.then(console.log);
API
find(patterns [, options]): List<File>
patterns
{String,Array<String>}
- Seeminimatch
glob patterns.options
{Object}
- Seeglobby
options.
Finds files on the file system by the given glob patterns. The results are returned as an array-aware promise (List
) of virtual file objects (File
).
const files = await find('**/*.js');
read([options]): Function(File): File
options
{String|null|Object}
File encoding, orfs.readFile
options. (default:'utf8'
)
Creates a helper to read the contents of a given File
object from the file system. Useful as a map function on a list of files.
const files = await find('**/*.js')
.map(read());
const files = await find('**/*.js')
// Same as above
.map(read('utf8'));
const files = await find('**/*.png')
// Use `null` to read binary files
.map(read(null));
const files = await find('**/*.png')
// fs.readFile options object
.map(read({
encoding: null,
flag: 'r'
}));
write([options]): Function(File): File
options
{String|Object}
Destination directory (relative to the original location or an absolute path), orfs.writeFile
options. (default:'.'
)
Creates a helper to write the contents of a given File
object to the file system. Useful as a map function on a list of files.
const files = await find('**/*.js')
.map(read())
// Overwrite original file
.map(write());
const files = await find('**/*.js')
.map(read())
// Copy file to new location
.map(write('dest'));
const files = await find('**/*.js')
.map(read())
// fs.writeFile options object
.map(write({
cwd: 'dest',
flag: 'w'
}));
MIT © Shannon Moeller