webdriverio-automation
Version:
WebdriverIO-Automation android ios project
103 lines (77 loc) • 10.8 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.allowCrossDomain = allowCrossDomain;
exports.fixPythonContentType = fixPythonContentType;
exports.defaultToJSONContentType = defaultToJSONContentType;
exports.catchAllHandler = catchAllHandler;
exports.catch404Handler = catch404Handler;
exports.catch4XXHandler = catch4XXHandler;
exports.allowCrossDomainAsyncExecute = allowCrossDomainAsyncExecute;
require("source-map-support/register");
var _logger = _interopRequireDefault(require("./logger"));
var _protocol = require("../protocol");
function allowCrossDomain(req, res, next) {
try {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, POST, PUT, OPTIONS, DELETE');
res.header('Access-Control-Allow-Headers', 'Cache-Control, Pragma, Origin, X-Requested-With, Content-Type, Accept, User-Agent');
if ('OPTIONS' === req.method) {
return res.sendStatus(200);
}
} catch (err) {
_logger.default.error(`Unexpected error: ${err.stack}`);
}
next();
}
function allowCrossDomainAsyncExecute(req, res, next) {
const receiveAsyncResponseRegExp = new RegExp(`(/wd/hub)?/session/[a-f0-9-]+/(appium/)?receive_async_response`);
if (!receiveAsyncResponseRegExp.test(req.url)) {
return next();
}
allowCrossDomain(req, res, next);
}
function fixPythonContentType(req, res, next) {
if (/^\/wd/.test(req.path) && /^Python/.test(req.headers['user-agent'])) {
if (req.headers['content-type'] === 'application/x-www-form-urlencoded') {
req.headers['content-type'] = 'application/json; charset=utf-8';
}
}
next();
}
function defaultToJSONContentType(req, res, next) {
if (!req.headers['content-type']) {
req.headers['content-type'] = 'application/json; charset=utf-8';
}
next();
}
function catchAllHandler(err, req, res, next) {
_logger.default.error(`Uncaught error: ${err.message}`);
_logger.default.error('Sending generic error response');
try {
res.status(500).send({
status: _protocol.errors.UnknownError.code(),
value: `ERROR running Appium command: ${err.message}`
});
_logger.default.error(err);
} catch (ign) {
next(ign);
}
}
function catch4XXHandler(err, req, res, next) {
if (err.status >= 400 && err.status < 500) {
_logger.default.debug(`Setting content type to 'text/plain' for HTTP status '${err.status}'`);
res.set('content-type', 'text/plain');
res.status(err.status).send(`Unable to process request: ${err.message}`);
} else {
next(err);
}
}
function catch404Handler(req, res) {
_logger.default.debug('No route found. Setting content type to \'text/plain\'');
res.set('content-type', 'text/plain');
res.status(404).send(`The URL '${req.originalUrl}' did not map to a valid resource`);
}require('source-map-support').install();
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9leHByZXNzL21pZGRsZXdhcmUuanMiXSwibmFtZXMiOlsiYWxsb3dDcm9zc0RvbWFpbiIsInJlcSIsInJlcyIsIm5leHQiLCJoZWFkZXIiLCJtZXRob2QiLCJzZW5kU3RhdHVzIiwiZXJyIiwibG9nIiwiZXJyb3IiLCJzdGFjayIsImFsbG93Q3Jvc3NEb21haW5Bc3luY0V4ZWN1dGUiLCJyZWNlaXZlQXN5bmNSZXNwb25zZVJlZ0V4cCIsIlJlZ0V4cCIsInRlc3QiLCJ1cmwiLCJmaXhQeXRob25Db250ZW50VHlwZSIsInBhdGgiLCJoZWFkZXJzIiwiZGVmYXVsdFRvSlNPTkNvbnRlbnRUeXBlIiwiY2F0Y2hBbGxIYW5kbGVyIiwibWVzc2FnZSIsInN0YXR1cyIsInNlbmQiLCJlcnJvcnMiLCJVbmtub3duRXJyb3IiLCJjb2RlIiwidmFsdWUiLCJpZ24iLCJjYXRjaDRYWEhhbmRsZXIiLCJkZWJ1ZyIsInNldCIsImNhdGNoNDA0SGFuZGxlciIsIm9yaWdpbmFsVXJsIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLFNBQVNBLGdCQUFULENBQTJCQyxHQUEzQixFQUFnQ0MsR0FBaEMsRUFBcUNDLElBQXJDLEVBQTJDO0FBQ3pDLE1BQUk7QUFDRkQsSUFBQUEsR0FBRyxDQUFDRSxNQUFKLENBQVcsNkJBQVgsRUFBMEMsR0FBMUM7QUFDQUYsSUFBQUEsR0FBRyxDQUFDRSxNQUFKLENBQVcsOEJBQVgsRUFBMkMsaUNBQTNDO0FBQ0FGLElBQUFBLEdBQUcsQ0FBQ0UsTUFBSixDQUFXLDhCQUFYLEVBQTJDLG1GQUEzQzs7QUFHQSxRQUFJLGNBQWNILEdBQUcsQ0FBQ0ksTUFBdEIsRUFBOEI7QUFDNUIsYUFBT0gsR0FBRyxDQUFDSSxVQUFKLENBQWUsR0FBZixDQUFQO0FBQ0Q7QUFDRixHQVRELENBU0UsT0FBT0MsR0FBUCxFQUFZO0FBQ1pDLG9CQUFJQyxLQUFKLENBQVcscUJBQW9CRixHQUFHLENBQUNHLEtBQU0sRUFB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QSxHQUFHLENBQUM2QixHQUFKLENBQVEsY0FBUixFQUF3QixZQUF4QjtBQUNBN0IsRUFBQUEsR0FBRyxDQUFDb0IsTUFBSixDQUFXLEdBQVgsRUFBZ0JDLElBQWhCLENBQXNCLFlBQVd0QixHQUFHLENBQUNnQyxXQUFZLG1DQUFqRDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi9wcm90b2NvbCc7XG5cblxuZnVuY3Rpb24gYWxsb3dDcm9zc0RvbWFpbiAocmVxLCByZXMsIG5leHQpIHtcbiAgdHJ5IHtcbiAgICByZXMuaGVhZGVyKCdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4nLCAnKicpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LU1ldGhvZHMnLCAnR0VULCBQT1NULCBQVVQsIE9QVElPTlMsIERFTEVURScpO1xuICAgIHJlcy5oZWFkZXIoJ0FjY2Vzcy1Db250cm9sLUFsbG93LUhlYWRlcnMnLCAnQ2FjaGUtQ29udHJvbCwgUHJhZ21hLCBPcmlnaW4sIFgtUmVxdWVzdGVkLVdpdGgsIENvbnRlbnQtVHlwZSwgQWNjZXB0LCBVc2VyLUFnZW50Jyk7XG5cbiAgICAvLyBuZWVkIHRvIHJlc3BvbmQgMjAwIHRvIE9QVElPTlNcbiAgICBpZiAoJ09QVElPTlMnID09PSByZXEubWV0aG9kKSB7XG4gICAgICByZXR1cm4gcmVzLnNlbmRTdGF0dXMoMjAwKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5lcnJvcihgVW5leHBlY3RlZCBlcnJvcjogJHtlcnIuc3RhY2t9YCk7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlIChyZXEsIHJlcywgbmV4dCkge1xuICAvLyB0aGVyZSBhcmUgdHdvIHBhdGhzIGZvciBhc3luYyByZXNwb25zZXMsIHNvIGNvdmVyIGJvdGhcbiAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci90eFlpRXovMVxuICBjb25zdCByZWNlaXZlQXN5bmNSZXNwb25zZVJlZ0V4cCA9IG5ldyBSZWdFeHAoYCgvd2QvaHViKT8vc2Vzc2lvbi9bYS1mMC05LV0rLyhhcHBpdW0vKT9yZWNlaXZlX2FzeW5jX3Jlc3BvbnNlYCk7XG4gIGlmICghcmVjZWl2ZUFzeW5jUmVzcG9uc2VSZWdFeHAudGVzdChyZXEudXJsKSkge1xuICAgIHJldHVybiBuZXh0KCk7XG4gIH1cbiAgYWxsb3dDcm9zc0RvbWFpbihyZXEsIHJlcywgbmV4dCk7XG59XG5cbmZ1bmN0aW9uIGZpeFB5dGhvbkNvbnRlbnRUeXBlIChyZXEsIHJlcywgbmV4dCkge1xuICAvLyBoYWNrIGJlY2F1c2UgcHl0aG9uIGNsaWVudCBsaWJyYXJ5IGdpdmVzIHVzIHdyb25nIGNvbnRlbnQtdHlwZVxuICBpZiAoL15cXC93ZC8udGVzdChyZXEucGF0aCkgJiYgL15QeXRob24vLnRlc3QocmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSkpIHtcbiAgICBpZiAocmVxLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID09PSAnYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkJykge1xuICAgICAgcmVxLmhlYWRlcnNbJ2NvbnRlbnQtdHlwZSddID0gJ2FwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgnO1xuICAgIH1cbiAgfVxuICBuZXh0KCk7XG59XG5cbmZ1bmN0aW9uIGRlZmF1bHRUb0pTT05Db250ZW50VHlwZSAocmVxLCByZXMsIG5leHQpIHtcbiAgaWYgKCFyZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10pIHtcbiAgICByZXEuaGVhZGVyc1snY29udGVudC10eXBlJ10gPSAnYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCc7XG4gIH1cbiAgbmV4dCgpO1xufVxuXG5mdW5jdGlvbiBjYXRjaEFsbEhhbmRsZXIgKGVyciwgcmVxLCByZXMsIG5leHQpIHtcbiAgbG9nLmVycm9yKGBVbmNhdWdodCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgbG9nLmVycm9yKCdTZW5kaW5nIGdlbmVyaWMgZXJyb3IgcmVzcG9uc2UnKTtcbiAgdHJ5IHtcbiAgICByZXMuc3RhdHVzKDUwMCkuc2VuZCh7XG4gICAgICBzdGF0dXM6IGVycm9ycy5Vbmtub3duRXJyb3IuY29kZSgpLFxuICAgICAgdmFsdWU6IGBFUlJPUiBydW5uaW5nIEFwcGl1bSBjb21tYW5kOiAke2Vyci5tZXNzYWdlfWBcbiAgICB9KTtcbiAgICBsb2cuZXJyb3IoZXJyKTtcbiAgfSBjYXRjaCAoaWduKSB7XG4gICAgbmV4dChpZ24pO1xuICB9XG59XG5cbmZ1bmN0aW9uIGNhdGNoNFhYSGFuZGxlciAoZXJyLCByZXEsIHJlcywgbmV4dCkge1xuICBpZiAoZXJyLnN0YXR1cyA+PSA0MDAgJiYgZXJyLnN0YXR1cyA8IDUwMCkge1xuICAgIC8vIHNldCB0aGUgY29udGVudCB0eXBlIHRvIGB0ZXh0L3BsYWluYFxuICAgIC8vIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3Avc2VsZW5pdW0vd2lraS9Kc29uV2lyZVByb3RvY29sI1Jlc3BvbnNlc1xuICAgIGxvZy5kZWJ1ZyhgU2V0dGluZyBjb250ZW50IHR5cGUgdG8gJ3RleHQvcGxhaW4nIGZvciBIVFRQIHN0YXR1cyAnJHtlcnIuc3RhdHVzfSdgKTtcbiAgICByZXMuc2V0KCdjb250ZW50LXR5cGUnLCAndGV4dC9wbGFpbicpO1xuICAgIHJlcy5zdGF0dXMoZXJyLnN0YXR1cykuc2VuZChgVW5hYmxlIHRvIHByb2Nlc3MgcmVxdWVzdDogJHtlcnIubWVzc2FnZX1gKTtcbiAgfSBlbHNlIHtcbiAgICBuZXh0KGVycik7XG4gIH1cbn1cblxuZnVuY3Rpb24gY2F0Y2g0MDRIYW5kbGVyIChyZXEsIHJlcykge1xuICAvLyBzZXQgdGhlIGNvbnRlbnQgdHlwZSB0byBgdGV4dC9wbGFpbmBcbiAgLy8gaHR0cHM6Ly9jb2RlLmdvb2dsZS5jb20vcC9zZWxlbml1bS93aWtpL0pzb25XaXJlUHJvdG9jb2wjUmVzcG9uc2VzXG4gIGxvZy5kZWJ1ZygnTm8gcm91dGUgZm91bmQuIFNldHRpbmcgY29udGVudCB0eXBlIHRvIFxcJ3RleHQvcGxhaW5cXCcnKTtcbiAgcmVzLnNldCgnY29udGVudC10eXBlJywgJ3RleHQvcGxhaW4nKTtcbiAgcmVzLnN0YXR1cyg0MDQpLnNlbmQoYFRoZSBVUkwgJyR7cmVxLm9yaWdpbmFsVXJsfScgZGlkIG5vdCBtYXAgdG8gYSB2YWxpZCByZXNvdXJjZWApO1xufVxuXG5leHBvcnQge1xuICBhbGxvd0Nyb3NzRG9tYWluLCBmaXhQeXRob25Db250ZW50VHlwZSwgZGVmYXVsdFRvSlNPTkNvbnRlbnRUeXBlLFxuICBjYXRjaEFsbEhhbmRsZXIsIGNhdGNoNDA0SGFuZGxlciwgY2F0Y2g0WFhIYW5kbGVyLFxuICBhbGxvd0Nyb3NzRG9tYWluQXN5bmNFeGVjdXRlLFxufTtcbiJdLCJmaWxlIjoibGliL2V4cHJlc3MvbWlkZGxld2FyZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9