electron-compile
Version:
Electron supporting package to compile JS and CSS in Electron applications
175 lines (131 loc) • 8.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _regenerator = require('babel-runtime/regenerator');
var _regenerator2 = _interopRequireDefault(_regenerator);
var _getIterator2 = require('babel-runtime/core-js/get-iterator');
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');
var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);
exports.forAllFiles = forAllFiles;
exports.forAllFilesSync = forAllFilesSync;
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _path = require('path');
var _path2 = _interopRequireDefault(_path);
var _promise = require('./promise');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Invokes a method on all files in a directory recursively.
*
* @private
*/
function forAllFiles(rootDirectory, func) {
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
var _this = this;
var rec = function () {
var _ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(dir) {
var entries, _iteratorNormalCompletion, _didIteratorError, _iteratorError, _iterator, _step, name, fullName, stats;
return _regenerator2.default.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return _promise.pfs.readdir(dir);
case 2:
entries = _context.sent;
_iteratorNormalCompletion = true;
_didIteratorError = false;
_iteratorError = undefined;
_context.prev = 6;
_iterator = (0, _getIterator3.default)(entries);
case 8:
if (_iteratorNormalCompletion = (_step = _iterator.next()).done) {
_context.next = 23;
break;
}
name = _step.value;
fullName = _path2.default.join(dir, name);
_context.next = 13;
return _promise.pfs.stat(fullName);
case 13:
stats = _context.sent;
if (!stats.isDirectory()) {
_context.next = 17;
break;
}
_context.next = 17;
return rec(fullName);
case 17:
if (!stats.isFile()) {
_context.next = 20;
break;
}
_context.next = 20;
return func.apply(undefined, [fullName].concat(args));
case 20:
_iteratorNormalCompletion = true;
_context.next = 8;
break;
case 23:
_context.next = 29;
break;
case 25:
_context.prev = 25;
_context.t0 = _context['catch'](6);
_didIteratorError = true;
_iteratorError = _context.t0;
case 29:
_context.prev = 29;
_context.prev = 30;
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
case 32:
_context.prev = 32;
if (!_didIteratorError) {
_context.next = 35;
break;
}
throw _iteratorError;
case 35:
return _context.finish(32);
case 36:
return _context.finish(29);
case 37:
case 'end':
return _context.stop();
}
}
}, _callee, _this, [[6, 25, 29, 37], [30,, 32, 36]]);
}));
return function rec(_x) {
return _ref.apply(this, arguments);
};
}();
return rec(rootDirectory);
}
function forAllFilesSync(rootDirectory, func) {
for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
args[_key2 - 2] = arguments[_key2];
}
var rec = function rec(dir) {
_fs2.default.readdirSync(dir).forEach(function (name) {
var fullName = _path2.default.join(dir, name);
var stats = _fs2.default.statSync(fullName);
if (stats.isDirectory()) {
rec(fullName);
return;
}
if (stats.isFile()) {
func.apply(undefined, [fullName].concat(args));
return;
}
});
};
rec(rootDirectory);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3ItYWxsLWZpbGVzLmpzIl0sIm5hbWVzIjpbImZvckFsbEZpbGVzIiwiZm9yQWxsRmlsZXNTeW5jIiwicm9vdERpcmVjdG9yeSIsImZ1bmMiLCJhcmdzIiwicmVjIiwiZGlyIiwicmVhZGRpciIsImVudHJpZXMiLCJuYW1lIiwiZnVsbE5hbWUiLCJqb2luIiwic3RhdCIsInN0YXRzIiwiaXNEaXJlY3RvcnkiLCJpc0ZpbGUiLCJyZWFkZGlyU3luYyIsImZvckVhY2giLCJzdGF0U3luYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBVWdCQSxXLEdBQUFBLFc7UUFxQkFDLGUsR0FBQUEsZTs7QUEvQmhCOzs7O0FBQ0E7Ozs7QUFDQTs7OztBQUdBOzs7OztBQUtPLFNBQVNELFdBQVQsQ0FBcUJFLGFBQXJCLEVBQW9DQyxJQUFwQyxFQUFtRDtBQUFBLG9DQUFOQyxJQUFNO0FBQU5BLFFBQU07QUFBQTs7QUFBQTs7QUFDeEQsTUFBSUM7QUFBQSwwRUFBTSxpQkFBT0MsR0FBUDtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxxQkFDWSxhQUFJQyxPQUFKLENBQVlELEdBQVosQ0FEWjs7QUFBQTtBQUNKRSxxQkFESTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEscURBR1NBLE9BSFQ7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTs7QUFHQ0Msa0JBSEQ7QUFJRkMsc0JBSkUsR0FJUyxlQUFLQyxJQUFMLENBQVVMLEdBQVYsRUFBZUcsSUFBZixDQUpUO0FBQUE7QUFBQSxxQkFLWSxhQUFJRyxJQUFKLENBQVNGLFFBQVQsQ0FMWjs7QUFBQTtBQUtGRyxtQkFMRTs7QUFBQSxtQkFPRkEsTUFBTUMsV0FBTixFQVBFO0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEscUJBUUVULElBQUlLLFFBQUosQ0FSRjs7QUFBQTtBQUFBLG1CQVdGRyxNQUFNRSxNQUFOLEVBWEU7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQSxxQkFZRVosdUJBQUtPLFFBQUwsU0FBa0JOLElBQWxCLEVBWkY7O0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTs7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQTtBQUFBOztBQUFBOztBQUFBO0FBQUE7O0FBQUE7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxLQUFOOztBQUFBO0FBQUE7QUFBQTtBQUFBLEtBQUo7O0FBaUJBLFNBQU9DLElBQUlILGFBQUosQ0FBUDtBQUNEOztBQUVNLFNBQVNELGVBQVQsQ0FBeUJDLGFBQXpCLEVBQXdDQyxJQUF4QyxFQUF1RDtBQUFBLHFDQUFOQyxJQUFNO0FBQU5BLFFBQU07QUFBQTs7QUFDNUQsTUFBSUMsTUFBTSxTQUFOQSxHQUFNLENBQUNDLEdBQUQsRUFBUztBQUNqQixpQkFBR1UsV0FBSCxDQUFlVixHQUFmLEVBQW9CVyxPQUFwQixDQUE0QixVQUFDUixJQUFELEVBQVU7QUFDcEMsVUFBSUMsV0FBVyxlQUFLQyxJQUFMLENBQVVMLEdBQVYsRUFBZUcsSUFBZixDQUFmO0FBQ0EsVUFBSUksUUFBUSxhQUFHSyxRQUFILENBQVlSLFFBQVosQ0FBWjs7QUFFQSxVQUFJRyxNQUFNQyxXQUFOLEVBQUosRUFBeUI7QUFDdkJULFlBQUlLLFFBQUo7QUFDQTtBQUNEOztBQUVELFVBQUlHLE1BQU1FLE1BQU4sRUFBSixFQUFvQjtBQUNsQlosK0JBQUtPLFFBQUwsU0FBa0JOLElBQWxCO0FBQ0E7QUFDRDtBQUNGLEtBYkQ7QUFjRCxHQWZEOztBQWlCQUMsTUFBSUgsYUFBSjtBQUNEIiwiZmlsZSI6ImZvci1hbGwtZmlsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge3Bmc30gZnJvbSAnLi9wcm9taXNlJztcblxuXG4vKipcbiAqIEludm9rZXMgYSBtZXRob2Qgb24gYWxsIGZpbGVzIGluIGEgZGlyZWN0b3J5IHJlY3Vyc2l2ZWx5LlxuICogXG4gKiBAcHJpdmF0ZVxuICovIFxuZXhwb3J0IGZ1bmN0aW9uIGZvckFsbEZpbGVzKHJvb3REaXJlY3RvcnksIGZ1bmMsIC4uLmFyZ3MpIHtcbiAgbGV0IHJlYyA9IGFzeW5jIChkaXIpID0+IHtcbiAgICBsZXQgZW50cmllcyA9IGF3YWl0IHBmcy5yZWFkZGlyKGRpcik7XG4gICAgXG4gICAgZm9yIChsZXQgbmFtZSBvZiBlbnRyaWVzKSB7XG4gICAgICBsZXQgZnVsbE5hbWUgPSBwYXRoLmpvaW4oZGlyLCBuYW1lKTtcbiAgICAgIGxldCBzdGF0cyA9IGF3YWl0IHBmcy5zdGF0KGZ1bGxOYW1lKTtcblxuICAgICAgaWYgKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgYXdhaXQgcmVjKGZ1bGxOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRzLmlzRmlsZSgpKSB7XG4gICAgICAgIGF3YWl0IGZ1bmMoZnVsbE5hbWUsIC4uLmFyZ3MpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gcmVjKHJvb3REaXJlY3RvcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yQWxsRmlsZXNTeW5jKHJvb3REaXJlY3RvcnksIGZ1bmMsIC4uLmFyZ3MpIHtcbiAgbGV0IHJlYyA9IChkaXIpID0+IHtcbiAgICBmcy5yZWFkZGlyU3luYyhkaXIpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIGxldCBmdWxsTmFtZSA9IHBhdGguam9pbihkaXIsIG5hbWUpO1xuICAgICAgbGV0IHN0YXRzID0gZnMuc3RhdFN5bmMoZnVsbE5hbWUpO1xuICAgICAgXG4gICAgICBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICByZWMoZnVsbE5hbWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChzdGF0cy5pc0ZpbGUoKSkge1xuICAgICAgICBmdW5jKGZ1bGxOYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICBcbiAgcmVjKHJvb3REaXJlY3RvcnkpO1xufVxuIl19