@platform/cell.client
Version:
A strongly typed HTTP client for operating with a CellOS service end-point.
32 lines (31 loc) • 1.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.UploadEvent = void 0;
var rxjs_1 = require("rxjs");
var operators_1 = require("rxjs/operators");
var common_1 = require("../common");
function UploadEvent(args) {
var uri = args.uri, total = args.total;
var event$ = new rxjs_1.Subject();
var completed = 0;
var tx = common_1.Schema.cuid();
var next = function (payload) {
payload = common_1.value.deleteUndefined(payload);
event$.next({ type: 'HttpClient/uploaded', payload: payload });
};
var fire = function (args) {
if (args === void 0) { args = {}; }
var file = args.file, error = args.error;
if (file && !error) {
completed++;
}
var done = completed >= total ? true : args.done || false;
next({ uri: uri, tx: tx, file: file, total: total, completed: completed, done: done });
};
return {
$: event$.pipe((0, operators_1.share)()),
dispose: function () { return event$.complete(); },
fire: fire,
};
}
exports.UploadEvent = UploadEvent;