@lyra/form-builder
Version:
Lyra form builder
40 lines (32 loc) • 1.06 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mockUpload = mockUpload;
var _rxjs = require('rxjs');
function createProgressEvent(progress) {
return { type: 'progress', stage: 'upload', percent: progress };
}
function simulateProgress(updateInterval /*: number*/ = 200, speed /*: number*/ = 2) {
return new _rxjs.Observable(observer => {
let progress = 0;
observer.next(progress);
const interval = setInterval(next, updateInterval);
return () => clearInterval(interval);
function next() {
progress = Math.min(100, progress + (speed + Math.random() * speed));
observer.next(progress);
if (progress === 100) {
observer.complete();
}
}
});
}
function mockUpload(assetDoc /*: Object*/) {
return simulateProgress(100 + Math.random() * 500, 10 + Math.random() * 50).map(createProgressEvent).mergeMap(event => {
return _rxjs.Observable.of(...[event, event.percent === 100 && {
type: 'complete',
asset: assetDoc
}].filter(Boolean));
});
}