/**
*
* Given a selector corresponding to an `<input type=file>`, will upload the local
* file to the browser machine and fill the form accordingly. It does not submit
* the form for you.
*
* @param {String} selector input element
* @param {String} localPath local path to file to be uploaded
*
* @uses utility/uploadFile, action/addValue
* @type utility
*
*/
'use strict';
Object.defineProperty(exports, '__esModule', {
value: true
});
// istanbul ignore next
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var _fs = require('fs');
var _fs2 = _interopRequireDefault(_fs);
var _utilsErrorHandler = require('../utils/ErrorHandler');
var chooseFile = function chooseFile(selector, localPath) {
// istanbul ignore next
var _this = this;
/*!
* parameter check
*/
if (typeof localPath !== 'string') {
return new _utilsErrorHandler.CommandError('number or type of arguments don\'t agree with chooseFile command');
}
/*!
* mobile check
*/
if (this.isMobile) {
return new _utilsErrorHandler.CommandError('chooseFile command is not supported on mobile platforms');
}
return new Promise(function (resolve, reject) {
_fs2['default'].exists(localPath, function (exists) {
/* istanbul ignore next */
if (!exists) {
return reject(new _utilsErrorHandler.CommandError('File to upload does not exists on your system'));
}
_this.uploadFile(localPath).then(function (res) {
return this.addValue(selector, res.value);
}).then(resolve, reject);
});
});
};
exports['default'] = chooseFile;
module.exports = exports['default'];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9Vc2Vycy9jaHJpc3RpYW5icm9tYW5uL1NpdGVzL1dlYnByb2pla3RlL3dlYmRyaXZlcmpzL0RFVi9saWIvY29tbWFuZHMvY2hvb3NlRmlsZS5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrQkFjZSxJQUFJOzs7O2lDQUNVLHVCQUF1Qjs7QUFFcEQsSUFBSSxVQUFVLEdBQUcsU0FBYixVQUFVLENBQWEsUUFBUSxFQUFFLFNBQVMsRUFBRTs7Ozs7Ozs7QUFJNUMsUUFBSSxPQUFPLFNBQVMsS0FBSyxRQUFRLEVBQUU7QUFDL0IsZUFBTyxvQ0FBaUIsa0VBQWtFLENBQUMsQ0FBQTtLQUM5Rjs7Ozs7QUFLRCxRQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7QUFDZixlQUFPLG9DQUFpQix5REFBeUQsQ0FBQyxDQUFBO0tBQ3JGOztBQUVELFdBQU8sSUFBSSxPQUFPLENBQUMsVUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFLO0FBQ3BDLHdCQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsVUFBQyxNQUFNLEVBQUs7O0FBRTdCLGdCQUFJLENBQUMsTUFBTSxFQUFFO0FBQ1QsdUJBQU8sTUFBTSxDQUFDLG9DQUFpQiwrQ0FBK0MsQ0FBQyxDQUFDLENBQUE7YUFDbkY7O0FBRUQsa0JBQUssVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRTtBQUMzQyx1QkFBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7YUFDNUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUE7U0FDM0IsQ0FBQyxDQUFBO0tBQ0wsQ0FBQyxDQUFBO0NBQ0wsQ0FBQTs7cUJBRWMsVUFBVSIsImZpbGUiOiIvVXNlcnMvY2hyaXN0aWFuYnJvbWFubi9TaXRlcy9XZWJwcm9qZWt0ZS93ZWJkcml2ZXJqcy9ERVYvbGliL2NvbW1hbmRzL2Nob29zZUZpbGUuanMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqXG4gKiBHaXZlbiBhIHNlbGVjdG9yIGNvcnJlc3BvbmRpbmcgdG8gYW4gYDxpbnB1dCB0eXBlPWZpbGU+YCwgd2lsbCB1cGxvYWQgdGhlIGxvY2FsXG4gKiBmaWxlIHRvIHRoZSBicm93c2VyIG1hY2hpbmUgYW5kIGZpbGwgdGhlIGZvcm0gYWNjb3JkaW5nbHkuIEl0IGRvZXMgbm90IHN1Ym1pdFxuICogdGhlIGZvcm0gZm9yIHlvdS5cbiAqXG4gKiBAcGFyYW0ge1N0cmluZ30gc2VsZWN0b3IgICBpbnB1dCBlbGVtZW50XG4gKiBAcGFyYW0ge1N0cmluZ30gbG9jYWxQYXRoICBsb2NhbCBwYXRoIHRvIGZpbGUgdG8gYmUgdXBsb2FkZWRcbiAqXG4gKiBAdXNlcyB1dGlsaXR5L3VwbG9hZEZpbGUsIGFjdGlvbi9hZGRWYWx1ZVxuICogQHR5cGUgdXRpbGl0eVxuICpcbiAqL1xuXG5pbXBvcnQgZnMgZnJvbSAnZnMnXG5pbXBvcnQgeyBDb21tYW5kRXJyb3IgfSBmcm9tICcuLi91dGlscy9FcnJvckhhbmRsZXInXG5cbmxldCBjaG9vc2VGaWxlID0gZnVuY3Rpb24gKHNlbGVjdG9yLCBsb2NhbFBhdGgpIHtcbiAgICAvKiFcbiAgICAgKiBwYXJhbWV0ZXIgY2hlY2tcbiAgICAgKi9cbiAgICBpZiAodHlwZW9mIGxvY2FsUGF0aCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBDb21tYW5kRXJyb3IoJ251bWJlciBvciB0eXBlIG9mIGFyZ3VtZW50cyBkb25cXCd0IGFncmVlIHdpdGggY2hvb3NlRmlsZSBjb21tYW5kJylcbiAgICB9XG5cbiAgICAvKiFcbiAgICAgKiBtb2JpbGUgY2hlY2tcbiAgICAgKi9cbiAgICBpZiAodGhpcy5pc01vYmlsZSkge1xuICAgICAgICByZXR1cm4gbmV3IENvbW1hbmRFcnJvcignY2hvb3NlRmlsZSBjb21tYW5kIGlzIG5vdCBzdXBwb3J0ZWQgb24gbW9iaWxlIHBsYXRmb3JtcycpXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgZnMuZXhpc3RzKGxvY2FsUGF0aCwgKGV4aXN0cykgPT4ge1xuICAgICAgICAgICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAgICAgICAgIGlmICghZXhpc3RzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlamVjdChuZXcgQ29tbWFuZEVycm9yKCdGaWxlIHRvIHVwbG9hZCBkb2VzIG5vdCBleGlzdHMgb24geW91ciBzeXN0ZW0nKSlcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy51cGxvYWRGaWxlKGxvY2FsUGF0aCkudGhlbihmdW5jdGlvbiAocmVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWRkVmFsdWUoc2VsZWN0b3IsIHJlcy52YWx1ZSlcbiAgICAgICAgICAgIH0pLnRoZW4ocmVzb2x2ZSwgcmVqZWN0KVxuICAgICAgICB9KVxuICAgIH0pXG59XG5cbmV4cG9ydCBkZWZhdWx0IGNob29zZUZpbGVcbiJdfQ== |