UNPKG

direct-dev

Version:
39 lines (32 loc) 1.53 kB
'use strict'; var through = require('through2'); var babel = require('babel-core'); var _ = require('lodash'); /*** Проверяет, нужно ли обрабатывать заданный файл * @function filterFunction * @param {Object} file * @param {String} file.path - полный путь к файлу * @returns {Boolean} */ /** * Обрабатывает бабелем заданные файлы * @param {Object} [options] - параметры обработчика * @param {filterFunction} [options.filter] - функция, фильтрующая обрабатываемые файлы. Если не задана, обрабатываются все файлы. * @param {Object} [options.babelOptions] - Параметры, которые нужно передать при вызове babel * @returns {Stream} */ module.exports = function () { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var filter = options.filter, babelOptions = options.babelOptions; !filter && (filter = function filter(obj) { return true; }); return through.obj(function (file, encoding, cb) { try { if (filter(file)) { var finalOptions = _.merge({ filename: file.path }, babelOptions || {}); file.contents = babel.transform(file.contents, finalOptions).code; } return cb(null, file); } catch (ex) { return cb(ex); } }); };