fil

@ygor/files

Task toolkit. For when `npm run` isn't enough and everything else is too much.

Showing:

Popularity

Downloads/wk

39

GitHub Stars

68

Maintenance

Last Commit

3yrs ago

Contributors

1

Package

Dependencies

4

Size (min+gzip)

50.5KB

License

MIT

Type Definitions

Tree-Shakeable

No?

Categories

Readme

@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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100