@lyra/form-builder
Version:
Lyra form builder
31 lines (22 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = uploadFile;
var _rxjs = require('rxjs');
var _operators = require('rxjs/operators');
var _assets = require('../inputs/client-adapters/assets');
var _patches = require('../../utils/patches');
var _constants = require('./constants');
var _utils = require('./utils');
/*:: import type {Observable} from 'rxjs'*/
/*:: import type {UploadEvent, UploadOptions} from './typedefs'*/
function uploadFile(file /*: File*/, options /*: UploadOptions*/) /*: Observable<UploadEvent>*/ {
const upload$ = (0, _assets.uploadFileAsset)(file, options).pipe((0, _operators.map)(event => {
if (event.type === 'complete') {
return (0, _utils.createUploadEvent)([(0, _patches.set)({ _type: 'reference', _ref: event.asset._id }, ['asset']), (0, _patches.set)(100, [_constants.UPLOAD_STATUS_KEY, 'progress'])]);
}
return (0, _utils.createUploadEvent)([(0, _patches.set)(event.percent, [_constants.UPLOAD_STATUS_KEY, 'progress'])]);
}));
return (0, _rxjs.of)((0, _utils.createInitialUploadEvent)(file)).pipe((0, _operators.concat)(upload$), (0, _operators.concat)((0, _rxjs.of)(_utils.CLEANUP_EVENT)));
}