react-inline-for-rix-loader
Version:
for developing webpack rix-loader, folk from https://github.com/martinandert/react-inline
47 lines (28 loc) • 1.42 kB
JavaScript
;
var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default'];
exports.__esModule = true;
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _glob = require('glob');
var _glob2 = _interopRequireDefault(_glob);
var _mkdirp = require('mkdirp');
var _mkdirp2 = _interopRequireDefault(_mkdirp);
function bundle(sourceDir) {
var filename = arguments.length <= 1 || arguments[1] === undefined ? 'bundle.css' : arguments[1];
var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
var bundleFile = _path2['default'].join(sourceDir, filename);
var globOptions = { cwd: sourceDir, realpath: true, ignore: bundleFile };
var globPattern = options.globPattern || '**/*.css';
var readOptions = { encoding: options.sourceCharset || 'utf8' };
var writeOptions = { encoding: options.outputCharset || 'utf8' };
var cssFiles = _glob2['default'].sync(globPattern, globOptions);
var bundleCSS = cssFiles.reduce(function (memo, filePath) {
return memo + _fs2['default'].readFileSync(filePath, readOptions);
}, '');
_mkdirp2['default'].sync(_path2['default'].dirname(bundleFile));
_fs2['default'].writeFileSync(bundleFile, bundleCSS, writeOptions);
}
exports['default'] = { bundle: bundle };
module.exports = exports['default'];