UNPKG

electron-compile

Version:

Electron supporting package to compile JS and CSS in Electron applications

169 lines (123 loc) 10.7 kB
#!/usr/bin/env node 'use strict'; var _regenerator = require('babel-runtime/regenerator'); var _regenerator2 = _interopRequireDefault(_regenerator); var _promise = require('babel-runtime/core-js/promise'); var _promise2 = _interopRequireDefault(_promise); var _stringify = require('babel-runtime/core-js/json/stringify'); var _stringify2 = _interopRequireDefault(_stringify); var _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator'); var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); var main = function () { var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee2(appDir, sourceDirs) { var compilerHost, rootCacheDir; return _regenerator2.default.wrap(function _callee2$(_context2) { while (1) { switch (_context2.prev = _context2.next) { case 0: compilerHost = null; rootCacheDir = _path2.default.join(appDir, '.cache'); _mkdirp2.default.sync(rootCacheDir); if (process.env.NODE_ENV !== 'production') { console.log('Using NODE_ENV = ' + (process.env.NODE_ENV || 'development')); } d('main: ' + appDir + ', ' + (0, _stringify2.default)(sourceDirs)); _context2.prev = 5; _context2.next = 8; return (0, _configParser.createCompilerHostFromProjectRoot)(appDir, rootCacheDir); case 8: compilerHost = _context2.sent; _context2.next = 16; break; case 11: _context2.prev = 11; _context2.t0 = _context2['catch'](5); console.error('Couldn\'t set up compilers: ' + _context2.t0.message); d(_context2.t0.stack); throw _context2.t0; case 16: _context2.next = 18; return _promise2.default.all(_lodash2.default.map(sourceDirs, function (dir) { return (0, _forAllFiles.forAllFiles)(dir, function () { var _this = this; var ref = (0, _asyncToGenerator3.default)(_regenerator2.default.mark(function _callee(f) { return _regenerator2.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: _context.prev = 0; d('Starting compilation for ' + f); _context.next = 4; return compilerHost.compile(f); case 4: _context.next = 11; break; case 6: _context.prev = 6; _context.t0 = _context['catch'](0); console.error('Failed to compile file: ' + f); console.error(_context.t0.message); d(_context.t0.stack); case 11: case 'end': return _context.stop(); } } }, _callee, _this, [[0, 6]]); })); return function (_x3) { return ref.apply(this, arguments); }; }()); })); case 18: d('Saving out configuration'); _context2.next = 21; return compilerHost.saveConfiguration(); case 21: case 'end': return _context2.stop(); } } }, _callee2, this, [[5, 11]]); })); return function main(_x, _x2) { return ref.apply(this, arguments); }; }(); require('./babel-maybefill'); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _mkdirp = require('mkdirp'); var _mkdirp2 = _interopRequireDefault(_mkdirp); var _lodash = require('lodash'); var _lodash2 = _interopRequireDefault(_lodash); var _configParser = require('./config-parser'); var _forAllFiles = require('./for-all-files'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } process.on('unhandledRejection', function (e) { d(e.message || e); d(e.stack || ''); }); process.on('uncaughtException', function (e) { d(e.message || e); d(e.stack || ''); }); var d = require('debug')('electron-compile'); var yargs = require('yargs').usage('Usage: electron-compile --appdir [root-app-dir] paths...').alias('a', 'appdir').describe('a', 'The top-level application directory (i.e. where your package.json is)').help('h').alias('h', 'help').epilog('Copyright 2015'); var argv = yargs.argv; if (!argv._ || argv._.length < 1) { yargs.showHelp(); process.exit(-1); } var sourceDirs = argv._; var appDir = argv.a || process.env.PWD; main(appDir, sourceDirs).then(function () { return process.exit(0); }).catch(function (e) { console.error(e.message || e); d(e.stack); console.error("Compilation failed!\nFor extra information, set the DEBUG environment variable to '*'"); process.exit(-1); }); //# sourceMappingURL=data:application/json;base64,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SVosVUFBUSxLQUFSLENBQWMsdUZBQWQsRUFKWTtBQUtaLFVBQVEsSUFBUixDQUFhLENBQUMsQ0FBRCxDQUFiLENBTFk7Q0FBUCxDQUZUIiwiZmlsZSI6ImNsaS5qcyIsInNvdXJjZXNDb250ZW50IjpbIlxuXG5pbXBvcnQgJy4vYmFiZWwtbWF5YmVmaWxsJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IG1rZGlycCBmcm9tICdta2RpcnAnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHtjcmVhdGVDb21waWxlckhvc3RGcm9tUHJvamVjdFJvb3R9IGZyb20gJy4vY29uZmlnLXBhcnNlcic7XG5pbXBvcnQge2ZvckFsbEZpbGVzfSBmcm9tICcuL2Zvci1hbGwtZmlsZXMnO1xuXG5wcm9jZXNzLm9uKCd1bmhhbmRsZWRSZWplY3Rpb24nLCAoZSkgPT4ge1xuICBkKGUubWVzc2FnZSB8fCBlKTtcbiAgZChlLnN0YWNrIHx8ICcnKTtcbn0pO1xuXG5wcm9jZXNzLm9uKCd1bmNhdWdodEV4Y2VwdGlvbicsIChlKSA9PiB7XG4gIGQoZS5tZXNzYWdlIHx8IGUpO1xuICBkKGUuc3RhY2sgfHwgJycpO1xufSk7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oYXBwRGlyLCBzb3VyY2VEaXJzKSB7XG4gIGxldCBjb21waWxlckhvc3QgPSBudWxsO1xuICBsZXQgcm9vdENhY2hlRGlyID0gcGF0aC5qb2luKGFwcERpciwgJy5jYWNoZScpO1xuICBta2RpcnAuc3luYyhyb290Q2FjaGVEaXIpO1xuICBcbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBjb25zb2xlLmxvZyhgVXNpbmcgTk9ERV9FTlYgPSAke3Byb2Nlc3MuZW52Lk5PREVfRU5WIHx8ICdkZXZlbG9wbWVudCd9YCk7XG4gIH1cbiAgXG4gIGQoYG1haW46ICR7YXBwRGlyfSwgJHtKU09OLnN0cmluZ2lmeShzb3VyY2VEaXJzKX1gKTtcbiAgdHJ5IHtcbiAgICBjb21waWxlckhvc3QgPSBhd2FpdCBjcmVhdGVDb21waWxlckhvc3RGcm9tUHJvamVjdFJvb3QoYXBwRGlyLCByb290Q2FjaGVEaXIpO1xuICB9IGNhdGNoIChlKSB7XG4gICAgY29uc29sZS5lcnJvcihgQ291bGRuJ3Qgc2V0IHVwIGNvbXBpbGVyczogJHtlLm1lc3NhZ2V9YCk7XG4gICAgZChlLnN0YWNrKTtcblxuICAgIHRocm93IGU7XG4gIH1cbiAgXG4gIGF3YWl0IFByb21pc2UuYWxsKF8ubWFwKHNvdXJjZURpcnMsIChkaXIpID0+IGZvckFsbEZpbGVzKGRpciwgYXN5bmMgKGYpID0+IHtcbiAgICB0cnkge1xuICAgICAgZChgU3RhcnRpbmcgY29tcGlsYXRpb24gZm9yICR7Zn1gKTtcbiAgICAgIGF3YWl0IGNvbXBpbGVySG9zdC5jb21waWxlKGYpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYEZhaWxlZCB0byBjb21waWxlIGZpbGU6ICR7Zn1gKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZS5tZXNzYWdlKTtcblxuICAgICAgZChlLnN0YWNrKTtcbiAgICB9XG4gIH0pKSk7XG4gIFxuICBkKCdTYXZpbmcgb3V0IGNvbmZpZ3VyYXRpb24nKTtcbiAgYXdhaXQgY29tcGlsZXJIb3N0LnNhdmVDb25maWd1cmF0aW9uKCk7XG59XG5cbmNvbnN0IGQgPSByZXF1aXJlKCdkZWJ1ZycpKCdlbGVjdHJvbi1jb21waWxlJyk7XG5cbmNvbnN0IHlhcmdzID0gcmVxdWlyZSgneWFyZ3MnKVxuICAudXNhZ2UoJ1VzYWdlOiBlbGVjdHJvbi1jb21waWxlIC0tYXBwZGlyIFtyb290LWFwcC1kaXJdIHBhdGhzLi4uJylcbiAgLmFsaWFzKCdhJywgJ2FwcGRpcicpXG4gIC5kZXNjcmliZSgnYScsICdUaGUgdG9wLWxldmVsIGFwcGxpY2F0aW9uIGRpcmVjdG9yeSAoaS5lLiB3aGVyZSB5b3VyIHBhY2thZ2UuanNvbiBpcyknKVxuICAuaGVscCgnaCcpXG4gIC5hbGlhcygnaCcsICdoZWxwJylcbiAgLmVwaWxvZygnQ29weXJpZ2h0IDIwMTUnKTtcblxuY29uc3QgYXJndiA9IHlhcmdzLmFyZ3Y7XG5cbmlmICghYXJndi5fIHx8IGFyZ3YuXy5sZW5ndGggPCAxKSB7XG4gIHlhcmdzLnNob3dIZWxwKCk7XG4gIHByb2Nlc3MuZXhpdCgtMSk7XG59XG5cbmNvbnN0IHNvdXJjZURpcnMgPSBhcmd2Ll87XG5jb25zdCBhcHBEaXIgPSBhcmd2LmEgfHwgcHJvY2Vzcy5lbnYuUFdEO1xuXG5tYWluKGFwcERpciwgc291cmNlRGlycylcbiAgLnRoZW4oKCkgPT4gcHJvY2Vzcy5leGl0KDApKVxuICAuY2F0Y2goKGUpID0+IHtcbiAgICBjb25zb2xlLmVycm9yKGUubWVzc2FnZSB8fCBlKTtcbiAgICBkKGUuc3RhY2spO1xuICAgIFxuICAgIGNvbnNvbGUuZXJyb3IoXCJDb21waWxhdGlvbiBmYWlsZWQhXFxuRm9yIGV4dHJhIGluZm9ybWF0aW9uLCBzZXQgdGhlIERFQlVHIGVudmlyb25tZW50IHZhcmlhYmxlIHRvICcqJ1wiKTtcbiAgICBwcm9jZXNzLmV4aXQoLTEpO1xuICB9KTsgIFxuIl19