UNPKG

@lyra/form-builder

Version:
31 lines (22 loc) 1.21 kB
'use strict'; 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))); }