UNPKG

appium-instruments

Version:

IOS Instruments + instruments-without-delay launcher used by Appium

78 lines (64 loc) 6.87 kB
'use strict'; var _interopRequireDefault = require('babel-runtime/helpers/interop-require-default')['default']; Object.defineProperty(exports, '__esModule', { value: true }); var _logger = require('./logger'); var _logger2 = _interopRequireDefault(_logger); var _through = require('through'); var _through2 = _interopRequireDefault(_through); function clearBufferChars(output) { // Instruments output is buffered, so for each log output we also output // a stream of very many ****. This function strips those out so all we // get is the log output we care about var re = /(\n|^)\*+\n?/g; output = output.toString(); output = output.replace(re, ''); return output; } function outputStream() { return (0, _through2['default'])(function outputStreamHandler(output) { output = clearBufferChars(output); // if we have multiple log lines, indent non-first ones if (output !== '') { // get rid of newline at the end output = output.replace(/\n$/m, ''); // indent instead of newline output = output.replace(/\n/m, '\n '); output = '[INST] ' + output; output = output.green; _logger2['default'].debug(output); } this.queue(output); }); } function errorStream() { return (0, _through2['default'])(function errorStreamHandler(output) { // get rid of newline at the end output = output.replace(/\n$/m, ''); output = '[INST STDERR] ' + output; output = output.yellow; _logger2['default'].debug(output); this.queue(output); }); } function webSocketAlertStream(webSocket) { return (0, _through2['default'])(function webSocketAlertStreamHandler(output) { if (webSocket) { var re = /Call to onAlert returned 'YES'/; if (re.test(output)) { _logger2['default'].debug('Emiting alert message...'); webSocket.sockets.emit('alert', { message: output }); } } this.queue(output); }); } function dumpStream() { return (0, _through2['default'])(function nullStreamHandler() {/* ignore all stream output */}); } exports.outputStream = outputStream; exports.errorStream = errorStream; exports.webSocketAlertStream = webSocketAlertStream; exports.dumpStream = dumpStream; //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdHJlYW1zLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O3NCQUFnQixVQUFVOzs7O3VCQUNOLFNBQVM7Ozs7QUFHN0IsU0FBUyxnQkFBZ0IsQ0FBRSxNQUFNLEVBQUU7Ozs7QUFJakMsTUFBSSxFQUFFLEdBQUcsZUFBZSxDQUFDO0FBQ3pCLFFBQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7QUFDM0IsUUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2hDLFNBQU8sTUFBTSxDQUFDO0NBQ2Y7O0FBRUQsU0FBUyxZQUFZLEdBQUk7QUFDdkIsU0FBTywwQkFBUSxTQUFTLG1CQUFtQixDQUFFLE1BQU0sRUFBRTtBQUNuRCxVQUFNLEdBQUcsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7OztBQUdsQyxRQUFJLE1BQU0sS0FBSyxFQUFFLEVBQUU7O0FBRWpCLFlBQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQzs7QUFFcEMsWUFBTSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQzVDLFlBQU0sZUFBYSxNQUFNLEFBQUUsQ0FBQztBQUM1QixZQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztBQUN0QiwwQkFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7S0FDbkI7QUFDRCxRQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0dBQ3BCLENBQUMsQ0FBQztDQUNKOztBQUVELFNBQVMsV0FBVyxHQUFJO0FBQ3RCLFNBQU8sMEJBQVEsU0FBUyxrQkFBa0IsQ0FBRSxNQUFNLEVBQUU7O0FBRWxELFVBQU0sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztBQUNwQyxVQUFNLHNCQUFxQixNQUFNLEFBQUcsQ0FBQztBQUNyQyxVQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztBQUN2Qix3QkFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbEIsUUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztHQUNwQixDQUFDLENBQUM7Q0FDSjs7QUFFRCxTQUFTLG9CQUFvQixDQUFFLFNBQVMsRUFBRTtBQUN4QyxTQUFPLDBCQUFRLFNBQVMsMkJBQTJCLENBQUUsTUFBTSxFQUFFO0FBQzNELFFBQUksU0FBUyxFQUFFO0FBQ2IsVUFBSSxFQUFFLEdBQUcsZ0NBQWdDLENBQUM7QUFDMUMsVUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFO0FBQ25CLDRCQUFJLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQ3RDLGlCQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDLENBQUMsQ0FBQztPQUNwRDtLQUNGO0FBQ0QsUUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztHQUNwQixDQUFDLENBQUM7Q0FDSjs7QUFFRCxTQUFTLFVBQVUsR0FBSTtBQUNyQixTQUFPLDBCQUFRLFNBQVMsaUJBQWlCLEdBQUksZ0NBQWlDLENBQUMsQ0FBQztDQUNqRjs7UUFFUSxZQUFZLEdBQVosWUFBWTtRQUFFLFdBQVcsR0FBWCxXQUFXO1FBQUUsb0JBQW9CLEdBQXBCLG9CQUFvQjtRQUFFLFVBQVUsR0FBVixVQUFVIiwiZmlsZSI6ImxpYi9zdHJlYW1zLmpzIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgdGhyb3VnaCBmcm9tICd0aHJvdWdoJztcblxuXG5mdW5jdGlvbiBjbGVhckJ1ZmZlckNoYXJzIChvdXRwdXQpIHtcbiAgLy8gSW5zdHJ1bWVudHMgb3V0cHV0IGlzIGJ1ZmZlcmVkLCBzbyBmb3IgZWFjaCBsb2cgb3V0cHV0IHdlIGFsc28gb3V0cHV0XG4gIC8vIGEgc3RyZWFtIG9mIHZlcnkgbWFueSAqKioqLiBUaGlzIGZ1bmN0aW9uIHN0cmlwcyB0aG9zZSBvdXQgc28gYWxsIHdlXG4gIC8vIGdldCBpcyB0aGUgbG9nIG91dHB1dCB3ZSBjYXJlIGFib3V0XG4gIGxldCByZSA9IC8oXFxufF4pXFwqK1xcbj8vZztcbiAgb3V0cHV0ID0gb3V0cHV0LnRvU3RyaW5nKCk7XG4gIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKHJlLCAnJyk7XG4gIHJldHVybiBvdXRwdXQ7XG59XG5cbmZ1bmN0aW9uIG91dHB1dFN0cmVhbSAoKSB7XG4gIHJldHVybiB0aHJvdWdoKGZ1bmN0aW9uIG91dHB1dFN0cmVhbUhhbmRsZXIgKG91dHB1dCkge1xuICAgIG91dHB1dCA9IGNsZWFyQnVmZmVyQ2hhcnMob3V0cHV0KTtcblxuICAgIC8vIGlmIHdlIGhhdmUgbXVsdGlwbGUgbG9nIGxpbmVzLCBpbmRlbnQgbm9uLWZpcnN0IG9uZXNcbiAgICBpZiAob3V0cHV0ICE9PSAnJykge1xuICAgICAgLy8gZ2V0IHJpZCBvZiBuZXdsaW5lIGF0IHRoZSBlbmRcbiAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXG4kL20sICcnKTtcbiAgICAgIC8vIGluZGVudCBpbnN0ZWFkIG9mIG5ld2xpbmVcbiAgICAgIG91dHB1dCA9IG91dHB1dC5yZXBsYWNlKC9cXG4vbSwgJ1xcbiAgICAgICAnKTtcbiAgICAgIG91dHB1dCA9IGBbSU5TVF0gJHtvdXRwdXR9YDtcbiAgICAgIG91dHB1dCA9IG91dHB1dC5ncmVlbjtcbiAgICAgIGxvZy5kZWJ1ZyhvdXRwdXQpO1xuICAgIH1cbiAgICB0aGlzLnF1ZXVlKG91dHB1dCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBlcnJvclN0cmVhbSAoKSB7XG4gIHJldHVybiB0aHJvdWdoKGZ1bmN0aW9uIGVycm9yU3RyZWFtSGFuZGxlciAob3V0cHV0KSB7XG4gICAgLy8gZ2V0IHJpZCBvZiBuZXdsaW5lIGF0IHRoZSBlbmRcbiAgICBvdXRwdXQgPSBvdXRwdXQucmVwbGFjZSgvXFxuJC9tLCAnJyk7XG4gICAgb3V0cHV0ID0gKGBbSU5TVCBTVERFUlJdICR7b3V0cHV0fWApO1xuICAgIG91dHB1dCA9IG91dHB1dC55ZWxsb3c7XG4gICAgbG9nLmRlYnVnKG91dHB1dCk7XG4gICAgdGhpcy5xdWV1ZShvdXRwdXQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gd2ViU29ja2V0QWxlcnRTdHJlYW0gKHdlYlNvY2tldCkge1xuICByZXR1cm4gdGhyb3VnaChmdW5jdGlvbiB3ZWJTb2NrZXRBbGVydFN0cmVhbUhhbmRsZXIgKG91dHB1dCkge1xuICAgIGlmICh3ZWJTb2NrZXQpIHtcbiAgICAgIGxldCByZSA9IC9DYWxsIHRvIG9uQWxlcnQgcmV0dXJuZWQgJ1lFUycvO1xuICAgICAgaWYgKHJlLnRlc3Qob3V0cHV0KSkge1xuICAgICAgICBsb2cuZGVidWcoJ0VtaXRpbmcgYWxlcnQgbWVzc2FnZS4uLicpO1xuICAgICAgICB3ZWJTb2NrZXQuc29ja2V0cy5lbWl0KCdhbGVydCcsIHttZXNzYWdlOiBvdXRwdXR9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5xdWV1ZShvdXRwdXQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gZHVtcFN0cmVhbSAoKSB7XG4gIHJldHVybiB0aHJvdWdoKGZ1bmN0aW9uIG51bGxTdHJlYW1IYW5kbGVyICgpIHsgLyogaWdub3JlIGFsbCBzdHJlYW0gb3V0cHV0ICovfSk7XG59XG5cbmV4cG9ydCB7IG91dHB1dFN0cmVhbSwgZXJyb3JTdHJlYW0sIHdlYlNvY2tldEFsZXJ0U3RyZWFtLCBkdW1wU3RyZWFtIH07XG4iXSwic291cmNlUm9vdCI6Ii4uLy4uIn0=