@ygor/files

6.0.1 • Public • Published

@ygor/files

NPM version Downloads Build Status Coverage Status

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>

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

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), or fs.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'
    }));

ygor


MIT © Shannon Moeller

Readme

Keywords

Package Sidebar

Install

npm i @ygor/files

Weekly Downloads

1

Version

6.0.1

License

MIT

Unpacked Size

7.95 kB

Total Files

3

Last publish

Collaborators

  • shannonmoeller