UNPKG

cabbie-sync

Version:
349 lines (235 loc) 12.2 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.TimeOutType = exports.SelectorType = exports.MouseButton = exports.Mode = exports.LogSource = exports.LogLevel = exports.KeyboardKey = exports.Capability = exports.BrowserOrientation = exports.ApplicationCacheStatus = exports.WindowHandle = exports.Touch = exports.TimeOut = exports.SessionStorage = exports.Navigator = exports.Mouse = exports.LocalStorage = exports.IME = exports.GlobalTouch = exports.GlobalMouse = exports.Frame = exports.Element = exports.CookieStorage = exports.Browser = exports.Alert = exports.ActiveWindow = exports.TimeOutTypes = exports.SelectorTypes = exports.MouseButtons = exports.Modes = exports.LogSources = exports.LogLevels = exports.KeyboardKeys = exports.Capabilities = exports.BrowserOrientations = exports.ApplicationCacheStatuses = exports.waitFor = exports.Options = exports.Status = exports.Driver = exports.Debug = exports.Connection = undefined; exports.default = createCabbieDriver; exports.getSessions = getSessions; exports.getStatus = getStatus; exports.startChromedriver = startChromedriver; var _applicationCacheStatuses = require('./enums/application-cache-statuses.js'); var _applicationCacheStatuses2 = _interopRequireDefault(_applicationCacheStatuses); var _browserOrientations = require('./enums/browser-orientations.js'); var _browserOrientations2 = _interopRequireDefault(_browserOrientations); var _capabilities = require('./enums/capabilities.js'); var _capabilities2 = _interopRequireDefault(_capabilities); var _keyboardKeys = require('./enums/keyboard-keys.js'); var _keyboardKeys2 = _interopRequireDefault(_keyboardKeys); var _logLevels = require('./enums/log-levels.js'); var _logLevels2 = _interopRequireDefault(_logLevels); var _logSources = require('./enums/log-sources.js'); var _logSources2 = _interopRequireDefault(_logSources); var _modes = require('./enums/modes.js'); var _modes2 = _interopRequireDefault(_modes); var _mouseButtons = require('./enums/mouse-buttons.js'); var _mouseButtons2 = _interopRequireDefault(_mouseButtons); var _selectorTypes = require('./enums/selector-types.js'); var _selectorTypes2 = _interopRequireDefault(_selectorTypes); var _timeOutTypes = require('./enums/time-out-types.js'); var _timeOutTypes2 = _interopRequireDefault(_timeOutTypes); var _activeWindow = require('./active-window.js'); var _activeWindow2 = _interopRequireDefault(_activeWindow); var _alert = require('./alert.js'); var _alert2 = _interopRequireDefault(_alert); var _browser = require('./browser.js'); var _browser2 = _interopRequireDefault(_browser); var _cookieStorage = require('./cookie-storage.js'); var _cookieStorage2 = _interopRequireDefault(_cookieStorage); var _element = require('./element.js'); var _element2 = _interopRequireDefault(_element); var _frame = require('./frame.js'); var _frame2 = _interopRequireDefault(_frame); var _globalMouse = require('./global-mouse.js'); var _globalMouse2 = _interopRequireDefault(_globalMouse); var _globalTouch = require('./global-touch.js'); var _globalTouch2 = _interopRequireDefault(_globalTouch); var _ime = require('./ime.js'); var _ime2 = _interopRequireDefault(_ime); var _localStorage = require('./local-storage.js'); var _localStorage2 = _interopRequireDefault(_localStorage); var _mouse = require('./mouse.js'); var _mouse2 = _interopRequireDefault(_mouse); var _navigator = require('./navigator.js'); var _navigator2 = _interopRequireDefault(_navigator); var _sessionStorage = require('./session-storage.js'); var _sessionStorage2 = _interopRequireDefault(_sessionStorage); var _timeOut = require('./time-out.js'); var _timeOut2 = _interopRequireDefault(_timeOut); var _touch = require('./touch.js'); var _touch2 = _interopRequireDefault(_touch); var _windowHandle = require('./window-handle.js'); var _windowHandle2 = _interopRequireDefault(_windowHandle); var _options = require('./flow-types/options'); var _sessionData = require('./flow-types/session-data'); var _connection = require('./connection'); var _connection2 = _interopRequireDefault(_connection); var _debug = require('./debug'); var _debug2 = _interopRequireDefault(_debug); var _driver = require('./driver'); var _driver2 = _interopRequireDefault(_driver); var _parseResponse = require('./utils/parse-response'); var _parseResponse2 = _interopRequireDefault(_parseResponse); var _status = require('./status'); var _status2 = _interopRequireDefault(_status); var _waitFor = require('./utils/wait-for'); var _waitFor2 = _interopRequireDefault(_waitFor); var _flowRuntime = require('flow-runtime'); var _flowRuntime2 = _interopRequireDefault(_flowRuntime); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } var Session = _flowRuntime2.default.tdz(function () { return _sessionData.Session; }); /** * * This file is generated automatically, run npm run build to re-generate. **/ var Options = _flowRuntime2.default.tdz(function () { return _options.Options; }); var TimeOutType = _flowRuntime2.default.tdz(function () { return _timeOutTypes2.default; }); var SelectorType = _flowRuntime2.default.tdz(function () { return _selectorTypes2.default; }); var MouseButton = _flowRuntime2.default.tdz(function () { return _mouseButtons2.default; }); var Mode = _flowRuntime2.default.tdz(function () { return _modes2.default; }); var LogSource = _flowRuntime2.default.tdz(function () { return _logSources2.default; }); var LogLevel = _flowRuntime2.default.tdz(function () { return _logLevels2.default; }); var KeyboardKey = _flowRuntime2.default.tdz(function () { return _keyboardKeys2.default; }); var Capability = _flowRuntime2.default.tdz(function () { return _capabilities2.default; }); var BrowserOrientation = _flowRuntime2.default.tdz(function () { return _browserOrientations2.default; }); var ApplicationCacheStatus = _flowRuntime2.default.tdz(function () { return _applicationCacheStatuses2.default; }); exports.Connection = _connection2.default; exports.Debug = _debug2.default; exports.Driver = _driver2.default; exports.Status = _status2.default; /* * Create a new cabbie Driver. See [getting started](/getting-started) for examples. */ function createCabbieDriver(remote /*: string*/) /*: Driver*/ { var options /*: Options*/ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _remoteType = _flowRuntime2.default.string(); var _optionsType = _flowRuntime2.default.ref(Options); var _returnType = _flowRuntime2.default.return(_flowRuntime2.default.ref(_driver2.default)); _flowRuntime2.default.param('remote', _remoteType).assert(remote); _flowRuntime2.default.param('options', _optionsType).assert(options); return _returnType.assert(new _driver2.default(remote, options)); } _flowRuntime2.default.annotate(createCabbieDriver, _flowRuntime2.default.function(_flowRuntime2.default.param('remote', _flowRuntime2.default.string()), _flowRuntime2.default.param('options', _flowRuntime2.default.ref(Options)), _flowRuntime2.default.return(_flowRuntime2.default.ref(_driver2.default)))); exports.Options = Options; /* * Returns a list of the currently active sessions * * Note: Appears not to be supported by the selenium-standalone-server! */ function getSessions(remote /*: string*/) /*: Array<Session>*/ { var options /*: Options*/ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _remoteType2 = _flowRuntime2.default.string(); var _optionsType2 = _flowRuntime2.default.ref(Options); var _returnType2 = _flowRuntime2.default.return(_flowRuntime2.default.array(_flowRuntime2.default.ref(Session))); _flowRuntime2.default.param('remote', _remoteType2).assert(remote); _flowRuntime2.default.param('options', _optionsType2).assert(options); var connection = new _connection2.default(remote, remote, new _debug2.default(options)); var rawSessions = connection.request('GET', '/sessions'); var sessions = (0, _parseResponse2.default)(rawSessions); return _returnType2.assert(sessions.map(function (session) { return { sessionID: session.id, capabilities: session.capabilities }; })); } /* * Gets the selenium-system status */ _flowRuntime2.default.annotate(getSessions, _flowRuntime2.default.function(_flowRuntime2.default.param('remote', _flowRuntime2.default.string()), _flowRuntime2.default.param('options', _flowRuntime2.default.ref(Options)), _flowRuntime2.default.return(_flowRuntime2.default.array(_flowRuntime2.default.ref(Session))))); function getStatus(remote /*: string*/) /*: Status*/ { var options /*: Options*/ = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _remoteType3 = _flowRuntime2.default.string(); var _optionsType3 = _flowRuntime2.default.ref(Options); var _returnType3 = _flowRuntime2.default.return(_flowRuntime2.default.ref(_status2.default)); _flowRuntime2.default.param('remote', _remoteType3).assert(remote); _flowRuntime2.default.param('options', _optionsType3).assert(options); var connection = new _connection2.default(remote, remote, new _debug2.default(options)); var rawResponse = connection.request('GET', '/status'); var response = (0, _parseResponse2.default)(rawResponse); return _returnType3.assert(new _status2.default(response)); } _flowRuntime2.default.annotate(getStatus, _flowRuntime2.default.function(_flowRuntime2.default.param('remote', _flowRuntime2.default.string()), _flowRuntime2.default.param('options', _flowRuntime2.default.ref(Options)), _flowRuntime2.default.return(_flowRuntime2.default.ref(_status2.default)))); var chromedriverRunning = false; /* * Start a chromedriver instance. You must have installed chromedriver to use this: * * ``` * npm install chromedriver --save-dev * ``` */ function startChromedriver() /*: void*/ { var _returnType4 = _flowRuntime2.default.return(_flowRuntime2.default.void()); if (chromedriverRunning) { return _returnType4.assert(); } var chromedriver = void 0; try { chromedriver = _flowRuntime2.default.any().assert(require)('chromedriver'); } catch (ex) { throw new Error('You must install the chromedriver module via "npm install chromedriver --save-dev" to call ' + 'cabbie.startChromedriver();'); } var cd = chromedriver; cd.start().unref(); process.once('exit', function (code) { cd.stop(); }); chromedriverRunning = true; } _flowRuntime2.default.annotate(startChromedriver, _flowRuntime2.default.function(_flowRuntime2.default.return(_flowRuntime2.default.void()))); exports.waitFor = _waitFor2.default; exports.ApplicationCacheStatuses = _applicationCacheStatuses2.default; exports.BrowserOrientations = _browserOrientations2.default; exports.Capabilities = _capabilities2.default; exports.KeyboardKeys = _keyboardKeys2.default; exports.LogLevels = _logLevels2.default; exports.LogSources = _logSources2.default; exports.Modes = _modes2.default; exports.MouseButtons = _mouseButtons2.default; exports.SelectorTypes = _selectorTypes2.default; exports.TimeOutTypes = _timeOutTypes2.default; exports.ActiveWindow = _activeWindow2.default; exports.Alert = _alert2.default; exports.Browser = _browser2.default; exports.CookieStorage = _cookieStorage2.default; exports.Element = _element2.default; exports.Frame = _frame2.default; exports.GlobalMouse = _globalMouse2.default; exports.GlobalTouch = _globalTouch2.default; exports.IME = _ime2.default; exports.LocalStorage = _localStorage2.default; exports.Mouse = _mouse2.default; exports.Navigator = _navigator2.default; exports.SessionStorage = _sessionStorage2.default; exports.TimeOut = _timeOut2.default; exports.Touch = _touch2.default; exports.WindowHandle = _windowHandle2.default; exports.ApplicationCacheStatus = ApplicationCacheStatus; exports.BrowserOrientation = BrowserOrientation; exports.Capability = Capability; exports.KeyboardKey = KeyboardKey; exports.LogLevel = LogLevel; exports.LogSource = LogSource; exports.Mode = Mode; exports.MouseButton = MouseButton; exports.SelectorType = SelectorType; exports.TimeOutType = TimeOutType;