/**
*
* Get the log for a given log type. Log buffer is reset after each request
*
* @param {String} type The [log type](https://code.google.com/p/selenium/wiki/JsonWireProtocol#Log_Type). This must be provided.
* @returns {Object[]} The list of [log entries](https://code.google.com/p/selenium/wiki/JsonWireProtocol#Log_Entry_JSON_Object)
*
* @see https://code.google.com/p/selenium/wiki/JsonWireProtocol#/session/:sessionId/log
* @type protocol
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
var _utilsErrorHandler = require('../utils/ErrorHandler');
var logTypes = undefined;
function getLogTypes() {
return logTypes ? Promise.resolve(logTypes) : this.logTypes().then(function (types) {
logTypes = types;
return logTypes;
});
}
var log = function log(type) {
// istanbul ignore next
var _this = this;
if (typeof type !== 'string' || type === '') {
throw new _utilsErrorHandler.ProtocolError('number or type of arguments don\'t agree with log command');
}
return getLogTypes.call(this).then(function (types) {
if (types.value.indexOf(type) === -1) {
throw new _utilsErrorHandler.ProtocolError('this log type ("' + type + '") is not available for this browser/device');
}
return _this.requestHandler.create('/session/:sessionId/log', {
type: type
});
});
};
exports['default'] = log;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvcHJvdG9jb2wvbG9nLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7OztpQ0FZOEIsdUJBQXVCOztBQUVyRCxJQUFJLFFBQVEsWUFBQSxDQUFBOztBQUVaLFNBQVMsV0FBVyxHQUFJO0FBQ3BCLFdBQU8sUUFBUSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUM1RCxJQUFJLENBQUMsVUFBQyxLQUFLLEVBQUs7QUFDYixnQkFBUSxHQUFHLEtBQUssQ0FBQTtBQUNoQixlQUFPLFFBQVEsQ0FBQTtLQUNsQixDQUFDLENBQUE7Q0FDTDs7QUFFRCxJQUFJLEdBQUcsR0FBRyxTQUFOLEdBQUcsQ0FBYSxJQUFJLEVBQUU7Ozs7O0FBQ3RCLFFBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksS0FBSyxFQUFFLEVBQUU7QUFDekMsY0FBTSxxQ0FBa0IsMkRBQTJELENBQUMsQ0FBQTtLQUN2Rjs7QUFFRCxXQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQUMsS0FBSyxFQUFLO0FBQzFDLFlBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7QUFDbEMsa0JBQU0sMERBQXFDLElBQUksaURBQThDLENBQUE7U0FDaEc7O0FBRUQsZUFBTyxNQUFLLGNBQWMsQ0FBQyxNQUFNLENBQUMseUJBQXlCLEVBQUU7QUFDekQsZ0JBQUksRUFBRSxJQUFJO1NBQ2IsQ0FBQyxDQUFBO0tBQ0wsQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7cUJBRWMsR0FBRyIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL3Byb3RvY29sL2xvZy5qcyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICpcbiAqIEdldCB0aGUgbG9nIGZvciBhIGdpdmVuIGxvZyB0eXBlLiBMb2cgYnVmZmVyIGlzIHJlc2V0IGFmdGVyIGVhY2ggcmVxdWVzdFxuICpcbiAqIEBwYXJhbSB7U3RyaW5nfSB0eXBlICBUaGUgW2xvZyB0eXBlXShodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCNMb2dfVHlwZSkuIFRoaXMgbXVzdCBiZSBwcm92aWRlZC5cbiAqIEByZXR1cm5zIHtPYmplY3RbXX0gVGhlIGxpc3Qgb2YgW2xvZyBlbnRyaWVzXShodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL3NlbGVuaXVtL3dpa2kvSnNvbldpcmVQcm90b2NvbCNMb2dfRW50cnlfSlNPTl9PYmplY3QpXG4gKlxuICogQHNlZSAgaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjL3Nlc3Npb24vOnNlc3Npb25JZC9sb2dcbiAqIEB0eXBlIHByb3RvY29sXG4gKlxuICovXG5cbmltcG9ydCB7IFByb3RvY29sRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBsb2dUeXBlc1xuXG5mdW5jdGlvbiBnZXRMb2dUeXBlcyAoKSB7XG4gICAgcmV0dXJuIGxvZ1R5cGVzID8gUHJvbWlzZS5yZXNvbHZlKGxvZ1R5cGVzKSA6IHRoaXMubG9nVHlwZXMoKVxuICAgIC50aGVuKCh0eXBlcykgPT4ge1xuICAgICAgICBsb2dUeXBlcyA9IHR5cGVzXG4gICAgICAgIHJldHVybiBsb2dUeXBlc1xuICAgIH0pXG59XG5cbmxldCBsb2cgPSBmdW5jdGlvbiAodHlwZSkge1xuICAgIGlmICh0eXBlb2YgdHlwZSAhPT0gJ3N0cmluZycgfHwgdHlwZSA9PT0gJycpIHtcbiAgICAgICAgdGhyb3cgbmV3IFByb3RvY29sRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggbG9nIGNvbW1hbmQnKVxuICAgIH1cblxuICAgIHJldHVybiBnZXRMb2dUeXBlcy5jYWxsKHRoaXMpLnRoZW4oKHR5cGVzKSA9PiB7XG4gICAgICAgIGlmICh0eXBlcy52YWx1ZS5pbmRleE9mKHR5cGUpID09PSAtMSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IFByb3RvY29sRXJyb3IoYHRoaXMgbG9nIHR5cGUgKFwiJHt0eXBlfVwiKSBpcyBub3QgYXZhaWxhYmxlIGZvciB0aGlzIGJyb3dzZXIvZGV2aWNlYClcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RIYW5kbGVyLmNyZWF0ZSgnL3Nlc3Npb24vOnNlc3Npb25JZC9sb2cnLCB7XG4gICAgICAgICAgICB0eXBlOiB0eXBlXG4gICAgICAgIH0pXG4gICAgfSlcbn1cblxuZXhwb3J0IGRlZmF1bHQgbG9nXG4iXX0= |