| 'use strict'; |
| |
| var _ = require('lodash'), |
| fs = require('fs-extra'), |
| glob = require('glob'), |
| path = require('path'); |
| |
| var minify = require('../common/minify.js'); |
| |
| /*----------------------------------------------------------------------------*/ |
| |
| /** |
| * Creates a [fs.copy](https://github.com/jprichardson/node-fs-extra#copy) |
| * function with `srcPath` and `destPath` partially applied. |
| * |
| * @memberOf file |
| * @param {string} srcPath The path of the file to copy. |
| * @param {string} destPath The path to copy the file to. |
| * @returns {Function} Returns the partially applied function. |
| */ |
| function copy(srcPath, destPath) { |
| return _.partial(fs.copy, srcPath, destPath); |
| } |
| |
| /** |
| * Creates an object of compiled template and base name pairs that match `pattern`. |
| * |
| * @memberOf file |
| * @param {string} pattern The glob pattern to be match. |
| * @returns {Object} Returns the object of compiled templates. |
| */ |
| function globTemplate(pattern) { |
| return _.transform(glob.sync(pattern), function(result, filePath) { |
| var key = path.basename(filePath, path.extname(filePath)); |
| result[key] = _.template(fs.readFileSync(filePath, 'utf8')); |
| }, {}); |
| } |
| |
| /** |
| * Creates a `minify` function with `srcPath` and `destPath` partially applied. |
| * |
| * @memberOf file |
| * @param {string} srcPath The path of the file to minify. |
| * @param {string} destPath The path to write the file to. |
| * @returns {Function} Returns the partially applied function. |
| */ |
| function min(srcPath, destPath) { |
| return _.partial(minify, srcPath, destPath); |
| } |
| |
| /** |
| * Creates a [fs.writeFile](https://nodejs.org/api/fs.html#fs_fs_writefile_file_data_options_callback) |
| * function with `filePath` and `data` partially applied. |
| * |
| * @memberOf file |
| * @param {string} destPath The path to write the file to. |
| * @param {string} data The data to write to the file. |
| * @returns {Function} Returns the partially applied function. |
| */ |
| function write(destPath, data) { |
| return _.partial(fs.writeFile, destPath, data); |
| } |
| |
| /*----------------------------------------------------------------------------*/ |
| |
| module.exports = { |
| 'copy': copy, |
| 'globTemplate': globTemplate, |
| 'min': min, |
| 'write': write |
| }; |