UNPKG

electron-forge

Version:

A complete tool for building modern Electron applications

148 lines (111 loc) 8.62 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); 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 }; } var 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 = function () { var _ref = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee2() { var providedOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var _Object$assign, dir, interactive, success, result; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: // eslint-disable-next-line prefer-const, no-unused-vars _Object$assign = (0, _assign2.default)({ dir: process.cwd(), interactive: false }, providedOptions), dir = _Object$assign.dir, interactive = _Object$assign.interactive; _oraHandler2.default.interactive = interactive; success = true; result = null; _context2.next = 6; return (0, _oraHandler2.default)('Linting Application', function () { var _ref2 = (0, _bluebird.coroutine)(_regenerator2.default.mark(function _callee(lintSpinner) { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.next = 2; return (0, _resolveDir2.default)(dir); case 2: dir = _context.sent; if (dir) { _context.next = 5; break; } throw 'Failed to locate lintable Electron application'; case 5: d('executing "run lint -- --color" in dir:', dir); _context.prev = 6; _context.next = 9; return (0, _yarnOrNpm.yarnOrNpmSpawn)(['run', 'lint', '--', '--color'], { stdio: process.platform === 'win32' ? 'inherit' : 'pipe', cwd: dir }); case 9: _context.next = 16; break; case 11: _context.prev = 11; _context.t0 = _context['catch'](6); lintSpinner.fail(); success = false; result = _context.t0; case 16: case 'end': return _context.stop(); } } }, _callee, undefined, [[6, 11]]); })); return function (_x2) { return _ref2.apply(this, arguments); }; }()); case 6: if (success) { _context2.next = 8; break; } throw result; case 8: case 'end': return _context2.stop(); } } }, _callee2, undefined); })); return function () { return _ref.apply(this, arguments); }; }(); //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwaS9saW50LmpzIl0sIm5hbWVzIjpbImQiLCJwcm92aWRlZE9wdGlvbnMiLCJkaXIiLCJwcm9jZXNzIiwiY3dkIiwiaW50ZXJhY3RpdmUiLCJzdWNjZXNzIiwicmVzdWx0IiwibGludFNwaW5uZXIiLCJzdGRpbyIsInBsYXRmb3JtIiwiZmFpbCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7O0FBQ0E7O0FBRUE7Ozs7QUFDQTs7Ozs7O0FBRUEsSUFBTUEsSUFBSSxxQkFBTSxxQkFBTixDQUFWOztBQUVBOzs7Ozs7QUFNQTs7Ozs7Ozs7Ozs7aUVBU2U7QUFBQSxRQUFPQyxlQUFQLHVFQUF5QixFQUF6Qjs7QUFBQTs7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUNiO0FBRGEsNkJBRWMsc0JBQWM7QUFDdkNDLG1CQUFLQyxRQUFRQyxHQUFSLEVBRGtDO0FBRXZDQywyQkFBYTtBQUYwQixhQUFkLEVBR3hCSixlQUh3QixDQUZkLEVBRVBDLEdBRk8sa0JBRVBBLEdBRk8sRUFFRkcsV0FGRSxrQkFFRkEsV0FGRTs7QUFNYixpQ0FBU0EsV0FBVCxHQUF1QkEsV0FBdkI7O0FBRUlDLG1CQVJTLEdBUUMsSUFSRDtBQVNUQyxrQkFUUyxHQVNBLElBVEE7QUFBQTtBQUFBLG1CQVdQLDBCQUFTLHFCQUFUO0FBQUEsOEVBQWdDLGlCQUFPQyxXQUFQO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLCtCQUN4QiwwQkFBV04sR0FBWCxDQUR3Qjs7QUFBQTtBQUNwQ0EsMkJBRG9DOztBQUFBLDRCQUUvQkEsR0FGK0I7QUFBQTtBQUFBO0FBQUE7O0FBQUEsOEJBRzVCLGdEQUg0Qjs7QUFBQTs7QUFNcENGLDBCQUFFLHlDQUFGLEVBQTZDRSxHQUE3QztBQU5vQztBQUFBO0FBQUEsK0JBUTVCLCtCQUFlLENBQUMsS0FBRCxFQUFRLE1BQVIsRUFBZ0IsSUFBaEIsRUFBc0IsU0FBdEIsQ0FBZixFQUFpRDtBQUNyRE8saUNBQU9OLFFBQVFPLFFBQVIsS0FBcUIsT0FBckIsR0FBK0IsU0FBL0IsR0FBMkMsTUFERztBQUVyRE4sK0JBQUtGO0FBRmdELHlCQUFqRCxDQVI0Qjs7QUFBQTtBQUFBO0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQWFsQ00sb0NBQVlHLElBQVo7QUFDQUwsa0NBQVUsS0FBVjtBQUNBQzs7QUFma0M7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsZUFBaEM7O0FBQUE7QUFBQTtBQUFBO0FBQUEsZ0JBWE87O0FBQUE7QUFBQSxnQkE4QlJELE9BOUJRO0FBQUE7QUFBQTtBQUFBOztBQUFBLGtCQStCTEMsTUEvQks7O0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsRyIsImZpbGUiOiJhcGkvbGludC5qcyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAnY29sb3JzJztcbmltcG9ydCBkZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgeyB5YXJuT3JOcG1TcGF3biB9IGZyb20gJy4uL3V0aWwveWFybi1vci1ucG0nO1xuXG5pbXBvcnQgYXN5bmNPcmEgZnJvbSAnLi4vdXRpbC9vcmEtaGFuZGxlcic7XG5pbXBvcnQgcmVzb2x2ZURpciBmcm9tICcuLi91dGlsL3Jlc29sdmUtZGlyJztcblxuY29uc3QgZCA9IGRlYnVnKCdlbGVjdHJvbi1mb3JnZTpsaW50Jyk7XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gTGludE9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbZGlyPXByb2Nlc3MuY3dkKCldIFRoZSBwYXRoIHRvIHRoZSBtb2R1bGUgdG8gaW1wb3J0XG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtpbnRlcmFjdGl2ZT1mYWxzZV0gV2hldGhlciB0byB1c2Ugc2Vuc2libGUgZGVmYXVsdHMgb3IgcHJvbXB0IHRoZSB1c2VyIHZpc3VhbGx5XG4gKi9cblxuLyoqXG4gKiBMaW50IGEgbG9jYWwgRWxlY3Ryb24gYXBwbGljYXRpb24uXG4gKlxuICogVGhlIHByb21pc2Ugd2lsbCBiZSByZWplY3RlZCB3aXRoIHRoZSBzdGRvdXQrc3RkZXJyIG9mIHRoZSBsaW50aW5nIHByb2Nlc3MgaWYgbGludGluZyBmYWlscyBvclxuICogd2lsbCBiZSByZXNvbHZlZCBpZiBpdCBzdWNjZWVkcy5cbiAqXG4gKiBAcGFyYW0ge0xpbnRPcHRpb25zfSBwcm92aWRlZE9wdGlvbnMgLSBPcHRpb25zIGZvciB0aGUgTGludCBtZXRob2RcbiAqIEByZXR1cm4ge1Byb21pc2U8bnVsbCwgc3RyaW5nPn0gV2lsbCByZXNvbHZlIHdoZW4gdGhlIGxpbnQgcHJvY2VzcyBpcyBjb21wbGV0ZVxuICovXG5leHBvcnQgZGVmYXVsdCBhc3luYyAocHJvdmlkZWRPcHRpb25zID0ge30pID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByZWZlci1jb25zdCwgbm8tdW51c2VkLXZhcnNcbiAgbGV0IHsgZGlyLCBpbnRlcmFjdGl2ZSB9ID0gT2JqZWN0LmFzc2lnbih7XG4gICAgZGlyOiBwcm9jZXNzLmN3ZCgpLFxuICAgIGludGVyYWN0aXZlOiBmYWxzZSxcbiAgfSwgcHJvdmlkZWRPcHRpb25zKTtcbiAgYXN5bmNPcmEuaW50ZXJhY3RpdmUgPSBpbnRlcmFjdGl2ZTtcblxuICBsZXQgc3VjY2VzcyA9IHRydWU7XG4gIGxldCByZXN1bHQgPSBudWxsO1xuXG4gIGF3YWl0IGFzeW5jT3JhKCdMaW50aW5nIEFwcGxpY2F0aW9uJywgYXN5bmMgKGxpbnRTcGlubmVyKSA9PiB7XG4gICAgZGlyID0gYXdhaXQgcmVzb2x2ZURpcihkaXIpO1xuICAgIGlmICghZGlyKSB7XG4gICAgICB0aHJvdyAnRmFpbGVkIHRvIGxvY2F0ZSBsaW50YWJsZSBFbGVjdHJvbiBhcHBsaWNhdGlvbic7XG4gICAgfVxuXG4gICAgZCgnZXhlY3V0aW5nIFwicnVuIGxpbnQgLS0gLS1jb2xvclwiIGluIGRpcjonLCBkaXIpO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB5YXJuT3JOcG1TcGF3bihbJ3J1bicsICdsaW50JywgJy0tJywgJy0tY29sb3InXSwge1xuICAgICAgICBzdGRpbzogcHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJyA/ICdpbmhlcml0JyA6ICdwaXBlJyxcbiAgICAgICAgY3dkOiBkaXIsXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxpbnRTcGlubmVyLmZhaWwoKTtcbiAgICAgIHN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgIHJlc3VsdCA9IGVycjtcbiAgICB9XG4gIH0pO1xuXG4gIGlmICghc3VjY2Vzcykge1xuICAgIHRocm93IHJlc3VsdDtcbiAgfVxufTtcbiJdfQ==