UNPKG

gia-cli

Version:

Guardian US Interactive CLI tool

31 lines (26 loc) 963 B
/*global require, module */ var path = require( 'path' ); var sander = require( 'sander' ); var Promise = sander.Promise; var textFiles = [ '.js', '.css', '.scss', '.html', '.md', '.json' ]; module.exports = function ( root, dest, processor, renamer ) { return sander.lsr( root ).then( function ( files ) { var binaryFilePromises = files .filter( function ( file ) { return !~textFiles.indexOf( path.extname( file ) ); }) .map( function ( file ) { return sander.copyFile( root, file ).to( dest, renamer( file ) ); }); var textFilePromises = files .filter( function ( file ) { return ~textFiles.indexOf( path.extname( file ) ); }) .map( function ( file ) { return sander.readFile( root, file ).then( String ).then( processor ).then( function ( processed ) { return sander.writeFile( dest, renamer( file ), processed ); }); }); return Promise.all( binaryFilePromises.concat( textFilePromises ) ); }); };