UNPKG

electron-compile

Version:

Electron supporting package to compile JS and CSS in Electron applications

83 lines (63 loc) 5.74 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); 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 }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } /** * 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]; } let rec = (() => { var _ref = _asyncToGenerator(function* (dir) { let entries = yield _promise.pfs.readdir(dir); for (let name of entries) { let fullName = _path2.default.join(dir, name); let stats = yield _promise.pfs.stat(fullName); if (stats.isDirectory()) { yield rec(fullName); } if (stats.isFile()) { yield func(fullName, ...args); } } }); 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]; } let rec = dir => { _fs2.default.readdirSync(dir).forEach(name => { let fullName = _path2.default.join(dir, name); let stats = _fs2.default.statSync(fullName); if (stats.isDirectory()) { rec(fullName); return; } if (stats.isFile()) { func(fullName, ...args); return; } }); }; rec(rootDirectory); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9mb3ItYWxsLWZpbGVzLmpzIl0sIm5hbWVzIjpbImZvckFsbEZpbGVzIiwiZm9yQWxsRmlsZXNTeW5jIiwicm9vdERpcmVjdG9yeSIsImZ1bmMiLCJhcmdzIiwicmVjIiwiZGlyIiwiZW50cmllcyIsInBmcyIsInJlYWRkaXIiLCJuYW1lIiwiZnVsbE5hbWUiLCJwYXRoIiwiam9pbiIsInN0YXRzIiwic3RhdCIsImlzRGlyZWN0b3J5IiwiaXNGaWxlIiwiZnMiLCJyZWFkZGlyU3luYyIsImZvckVhY2giLCJzdGF0U3luYyJdLCJtYXBwaW5ncyI6Ijs7Ozs7UUFVZ0JBLFcsR0FBQUEsVztRQXFCQUMsZSxHQUFBQSxlOztBQS9CaEI7Ozs7QUFDQTs7OztBQUNBOzs7Ozs7QUFHQTs7Ozs7QUFLTyxTQUFTRCxXQUFULENBQXFCRSxhQUFyQixFQUFvQ0MsSUFBcEMsRUFBbUQ7QUFBQSxvQ0FBTkMsSUFBTTtBQUFOQSxRQUFNO0FBQUE7O0FBQ3hELE1BQUlDO0FBQUEsaUNBQU0sV0FBT0MsR0FBUCxFQUFlO0FBQ3ZCLFVBQUlDLFVBQVUsTUFBTUMsYUFBSUMsT0FBSixDQUFZSCxHQUFaLENBQXBCOztBQUVBLFdBQUssSUFBSUksSUFBVCxJQUFpQkgsT0FBakIsRUFBMEI7QUFDeEIsWUFBSUksV0FBV0MsZUFBS0MsSUFBTCxDQUFVUCxHQUFWLEVBQWVJLElBQWYsQ0FBZjtBQUNBLFlBQUlJLFFBQVEsTUFBTU4sYUFBSU8sSUFBSixDQUFTSixRQUFULENBQWxCOztBQUVBLFlBQUlHLE1BQU1FLFdBQU4sRUFBSixFQUF5QjtBQUN2QixnQkFBTVgsSUFBSU0sUUFBSixDQUFOO0FBQ0Q7O0FBRUQsWUFBSUcsTUFBTUcsTUFBTixFQUFKLEVBQW9CO0FBQ2xCLGdCQUFNZCxLQUFLUSxRQUFMLEVBQWUsR0FBR1AsSUFBbEIsQ0FBTjtBQUNEO0FBQ0Y7QUFDRixLQWZHOztBQUFBO0FBQUE7QUFBQTtBQUFBLE1BQUo7O0FBaUJBLFNBQU9DLElBQUlILGFBQUosQ0FBUDtBQUNEOztBQUVNLFNBQVNELGVBQVQsQ0FBeUJDLGFBQXpCLEVBQXdDQyxJQUF4QyxFQUF1RDtBQUFBLHFDQUFOQyxJQUFNO0FBQU5BLFFBQU07QUFBQTs7QUFDNUQsTUFBSUMsTUFBT0MsR0FBRCxJQUFTO0FBQ2pCWSxpQkFBR0MsV0FBSCxDQUFlYixHQUFmLEVBQW9CYyxPQUFwQixDQUE2QlYsSUFBRCxJQUFVO0FBQ3BDLFVBQUlDLFdBQVdDLGVBQUtDLElBQUwsQ0FBVVAsR0FBVixFQUFlSSxJQUFmLENBQWY7QUFDQSxVQUFJSSxRQUFRSSxhQUFHRyxRQUFILENBQVlWLFFBQVosQ0FBWjs7QUFFQSxVQUFJRyxNQUFNRSxXQUFOLEVBQUosRUFBeUI7QUFDdkJYLFlBQUlNLFFBQUo7QUFDQTtBQUNEOztBQUVELFVBQUlHLE1BQU1HLE1BQU4sRUFBSixFQUFvQjtBQUNsQmQsYUFBS1EsUUFBTCxFQUFlLEdBQUdQLElBQWxCO0FBQ0E7QUFDRDtBQUNGLEtBYkQ7QUFjRCxHQWZEOztBQWlCQUMsTUFBSUgsYUFBSjtBQUNEIiwiZmlsZSI6ImZvci1hbGwtZmlsZXMuanMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge3Bmc30gZnJvbSAnLi9wcm9taXNlJztcblxuXG4vKipcbiAqIEludm9rZXMgYSBtZXRob2Qgb24gYWxsIGZpbGVzIGluIGEgZGlyZWN0b3J5IHJlY3Vyc2l2ZWx5LlxuICogXG4gKiBAcHJpdmF0ZVxuICovIFxuZXhwb3J0IGZ1bmN0aW9uIGZvckFsbEZpbGVzKHJvb3REaXJlY3RvcnksIGZ1bmMsIC4uLmFyZ3MpIHtcbiAgbGV0IHJlYyA9IGFzeW5jIChkaXIpID0+IHtcbiAgICBsZXQgZW50cmllcyA9IGF3YWl0IHBmcy5yZWFkZGlyKGRpcik7XG4gICAgXG4gICAgZm9yIChsZXQgbmFtZSBvZiBlbnRyaWVzKSB7XG4gICAgICBsZXQgZnVsbE5hbWUgPSBwYXRoLmpvaW4oZGlyLCBuYW1lKTtcbiAgICAgIGxldCBzdGF0cyA9IGF3YWl0IHBmcy5zdGF0KGZ1bGxOYW1lKTtcblxuICAgICAgaWYgKHN0YXRzLmlzRGlyZWN0b3J5KCkpIHtcbiAgICAgICAgYXdhaXQgcmVjKGZ1bGxOYW1lKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHN0YXRzLmlzRmlsZSgpKSB7XG4gICAgICAgIGF3YWl0IGZ1bmMoZnVsbE5hbWUsIC4uLmFyZ3MpO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gcmVjKHJvb3REaXJlY3RvcnkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZm9yQWxsRmlsZXNTeW5jKHJvb3REaXJlY3RvcnksIGZ1bmMsIC4uLmFyZ3MpIHtcbiAgbGV0IHJlYyA9IChkaXIpID0+IHtcbiAgICBmcy5yZWFkZGlyU3luYyhkaXIpLmZvckVhY2goKG5hbWUpID0+IHtcbiAgICAgIGxldCBmdWxsTmFtZSA9IHBhdGguam9pbihkaXIsIG5hbWUpO1xuICAgICAgbGV0IHN0YXRzID0gZnMuc3RhdFN5bmMoZnVsbE5hbWUpO1xuICAgICAgXG4gICAgICBpZiAoc3RhdHMuaXNEaXJlY3RvcnkoKSkge1xuICAgICAgICByZWMoZnVsbE5hbWUpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChzdGF0cy5pc0ZpbGUoKSkge1xuICAgICAgICBmdW5jKGZ1bGxOYW1lLCAuLi5hcmdzKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xuICBcbiAgcmVjKHJvb3REaXJlY3RvcnkpO1xufVxuIl19