electron-forge
Version:
A complete tool for building modern Electron applications
99 lines (74 loc) • 6.44 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _bluebird = require('bluebird');
require('colors');
var _debug = require('debug');
var _debug2 = _interopRequireDefault(_debug);
var _yarnOrNpm = require('../util/yarn-or-npm');
var _oraHandler = require('../util/ora-handler');
var _oraHandler2 = _interopRequireDefault(_oraHandler);
var _resolveDir = require('../util/resolve-dir');
var _resolveDir2 = _interopRequireDefault(_resolveDir);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
const d = (0, _debug2.default)('electron-forge:lint');
/**
* @typedef {Object} LintOptions
* @property {string} [dir=process.cwd()] The path to the module to import
* @property {boolean} [interactive=false] Whether to use sensible defaults or prompt the user visually
*/
/**
* Lint a local Electron application.
*
* The promise will be rejected with the stdout+stderr of the linting process if linting fails or
* will be resolved if it succeeds.
*
* @param {LintOptions} providedOptions - Options for the Lint method
* @return {Promise<null, string>} Will resolve when the lint process is complete
*/
exports.default = (() => {
var _ref = (0, _bluebird.coroutine)(function* (providedOptions = {}) {
// eslint-disable-next-line prefer-const, no-unused-vars
var _Object$assign = (0, _assign2.default)({
dir: process.cwd(),
interactive: false
}, providedOptions);
let dir = _Object$assign.dir,
interactive = _Object$assign.interactive;
_oraHandler2.default.interactive = interactive;
let success = true;
let result = null;
yield (0, _oraHandler2.default)('Linting Application', (() => {
var _ref2 = (0, _bluebird.coroutine)(function* (lintSpinner) {
dir = yield (0, _resolveDir2.default)(dir);
if (!dir) {
throw 'Failed to locate lintable Electron application';
}
d('executing "run lint" in dir:', dir);
try {
yield (0, _yarnOrNpm.yarnOrNpmSpawn)(['run', 'lint'], {
stdio: process.platform === 'win32' ? 'inherit' : 'pipe',
cwd: dir
});
} catch (err) {
lintSpinner.fail();
success = false;
result = err;
}
});
return function (_x) {
return _ref2.apply(this, arguments);
};
})());
if (!success) {
throw result;
}
});
return function () {
return _ref.apply(this, arguments);
};
})();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwaS9saW50LmpzIl0sIm5hbWVzIjpbImQiLCJwcm92aWRlZE9wdGlvbnMiLCJkaXIiLCJwcm9jZXNzIiwiY3dkIiwiaW50ZXJhY3RpdmUiLCJhc3luY09yYSIsInN1Y2Nlc3MiLCJyZXN1bHQiLCJsaW50U3Bpbm5lciIsInN0ZGlvIiwicGxhdGZvcm0iLCJlcnIiLCJmYWlsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7OztBQUNBOztBQUVBOzs7O0FBQ0E7Ozs7OztBQUVBLE1BQU1BLElBQUkscUJBQU0scUJBQU4sQ0FBVjs7QUFFQTs7Ozs7O0FBTUE7Ozs7Ozs7Ozs7O3NDQVNlLFdBQU9DLGtCQUFrQixFQUF6QixFQUFnQztBQUM3QztBQUQ2Qyx5QkFFbEIsc0JBQWM7QUFDdkNDLFdBQUtDLFFBQVFDLEdBQVIsRUFEa0M7QUFFdkNDLG1CQUFhO0FBRjBCLEtBQWQsRUFHeEJKLGVBSHdCLENBRmtCOztBQUFBLFFBRXZDQyxHQUZ1QyxrQkFFdkNBLEdBRnVDO0FBQUEsUUFFbENHLFdBRmtDLGtCQUVsQ0EsV0FGa0M7O0FBTTdDQyx5QkFBU0QsV0FBVCxHQUF1QkEsV0FBdkI7O0FBRUEsUUFBSUUsVUFBVSxJQUFkO0FBQ0EsUUFBSUMsU0FBUyxJQUFiOztBQUVBLFVBQU0sMEJBQVMscUJBQVQ7QUFBQSwyQ0FBZ0MsV0FBT0MsV0FBUCxFQUF1QjtBQUMzRFAsY0FBTSxNQUFNLDBCQUFXQSxHQUFYLENBQVo7QUFDQSxZQUFJLENBQUNBLEdBQUwsRUFBVTtBQUNSLGdCQUFNLGdEQUFOO0FBQ0Q7O0FBRURGLFVBQUUsOEJBQUYsRUFBa0NFLEdBQWxDO0FBQ0EsWUFBSTtBQUNGLGdCQUFNLCtCQUFlLENBQUMsS0FBRCxFQUFRLE1BQVIsQ0FBZixFQUFnQztBQUNwQ1EsbUJBQU9QLFFBQVFRLFFBQVIsS0FBcUIsT0FBckIsR0FBK0IsU0FBL0IsR0FBMkMsTUFEZDtBQUVwQ1AsaUJBQUtGO0FBRitCLFdBQWhDLENBQU47QUFJRCxTQUxELENBS0UsT0FBT1UsR0FBUCxFQUFZO0FBQ1pILHNCQUFZSSxJQUFaO0FBQ0FOLG9CQUFVLEtBQVY7QUFDQUMsbUJBQVNJLEdBQVQ7QUFDRDtBQUNGLE9BakJLOztBQUFBO0FBQUE7QUFBQTtBQUFBLFNBQU47O0FBbUJBLFFBQUksQ0FBQ0wsT0FBTCxFQUFjO0FBQ1osWUFBTUMsTUFBTjtBQUNEO0FBQ0YsRyIsImZpbGUiOiJhcGkvbGludC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnY29sb3JzJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyB5YXJuT3JOcG1TcGF3biB9IGZyb20gJy4uL3V0aWwveWFybi1vci1ucG0nO1xuXG5pbXBvcnQgYXN5bmNPcmEgZnJvbSAnLi4vdXRpbC9vcmEtaGFuZGxlcic7XG5pbXBvcnQgcmVzb2x2ZURpciBmcm9tICcuLi91dGlsL3Jlc29sdmUtZGlyJztcblxuY29uc3QgZCA9IGRlYnVnKCdlbGVjdHJvbi1mb3JnZTpsaW50Jyk7XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gTGludE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGlyPXByb2Nlc3MuY3dkKCldIFRoZSBwYXRoIHRvIHRoZSBtb2R1bGUgdG8gaW1wb3J0XG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtpbnRlcmFjdGl2ZT1mYWxzZV0gV2hldGhlciB0byB1c2Ugc2Vuc2libGUgZGVmYXVsdHMgb3IgcHJvbXB0IHRoZSB1c2VyIHZpc3VhbGx5XG4gKi9cblxuLyoqXG4gKiBMaW50IGEgbG9jYWwgRWxlY3Ryb24gYXBwbGljYXRpb24uXG4gKlxuICogVGhlIHByb21pc2Ugd2lsbCBiZSByZWplY3RlZCB3aXRoIHRoZSBzdGRvdXQrc3RkZXJyIG9mIHRoZSBsaW50aW5nIHByb2Nlc3MgaWYgbGludGluZyBmYWlscyBvclxuICogd2lsbCBiZSByZXNvbHZlZCBpZiBpdCBzdWNjZWVkcy5cbiAqXG4gKiBAcGFyYW0ge0xpbnRPcHRpb25zfSBwcm92aWRlZE9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGUgTGludCBtZXRob2RcbiAqIEByZXR1cm4ge1Byb21pc2U8bnVsbCwgc3RyaW5nPn0gV2lsbCByZXNvbHZlIHdoZW4gdGhlIGxpbnQgcHJvY2VzcyBpcyBjb21wbGV0ZVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyAocHJvdmlkZWRPcHRpb25zID0ge30pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdCwgbm8tdW51c2VkLXZhcnNcbiAgbGV0IHsgZGlyLCBpbnRlcmFjdGl2ZSB9ID0gT2JqZWN0LmFzc2lnbih7XG4gICAgZGlyOiBwcm9jZXNzLmN3ZCgpLFxuICAgIGludGVyYWN0aXZlOiBmYWxzZSxcbiAgfSwgcHJvdmlkZWRPcHRpb25zKTtcbiAgYXN5bmNPcmEuaW50ZXJhY3RpdmUgPSBpbnRlcmFjdGl2ZTtcblxuICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gIGxldCByZXN1bHQgPSBudWxsO1xuXG4gIGF3YWl0IGFzeW5jT3JhKCdMaW50aW5nIEFwcGxpY2F0aW9uJywgYXN5bmMgKGxpbnRTcGlubmVyKSA9PiB7XG4gICAgZGlyID0gYXdhaXQgcmVzb2x2ZURpcihkaXIpO1xuICAgIGlmICghZGlyKSB7XG4gICAgICB0aHJvdyAnRmFpbGVkIHRvIGxvY2F0ZSBsaW50YWJsZSBFbGVjdHJvbiBhcHBsaWNhdGlvbic7XG4gICAgfVxuXG4gICAgZCgnZXhlY3V0aW5nIFwicnVuIGxpbnRcIiBpbiBkaXI6JywgZGlyKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgeWFybk9yTnBtU3Bhd24oWydydW4nLCAnbGludCddLCB7XG4gICAgICAgIHN0ZGlvOiBwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInID8gJ2luaGVyaXQnIDogJ3BpcGUnLFxuICAgICAgICBjd2Q6IGRpcixcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgbGludFNwaW5uZXIuZmFpbCgpO1xuICAgICAgc3VjY2VzcyA9IGZhbHNlO1xuICAgICAgcmVzdWx0ID0gZXJyO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKCFzdWNjZXNzKSB7XG4gICAgdGhyb3cgcmVzdWx0O1xuICB9XG59O1xuIl19
;