@sanity/form-builder
Version:
Sanity form builder
24 lines (23 loc) • 1.23 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("../../patch/patches");
var _constants = require("./constants");
var _utils = require("./utils");
function uploadFile(file, options) {
var 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']), (0, _patches.set)(new Date().toISOString(), [_constants.UPLOAD_STATUS_KEY, 'updated'])]);
}
return (0, _utils.createUploadEvent)([(0, _patches.set)(event.percent, [_constants.UPLOAD_STATUS_KEY, 'progress']), (0, _patches.set)(new Date().toISOString(), [_constants.UPLOAD_STATUS_KEY, 'updated'])]);
}));
return (0, _rxjs.of)((0, _utils.createInitialUploadEvent)(file)).pipe((0, _operators.concat)(upload$), (0, _operators.concat)((0, _rxjs.of)(_utils.CLEANUP_EVENT)));
}