@ygor/files v6.0.1
@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/filesUsage
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>}- Seeminimatchglob patterns.options{Object}- Seeglobbyoptions.
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.readFileoptions. (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.writeFileoptions. (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
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago