uppy
Version:
Extensible JavaScript file upload widget with support for drag&drop, resumable uploads, previews, restrictions, file processing/encoding, remote providers like Instagram, Dropbox, Google Drive, S3 and more :dog:
77 lines (57 loc) • 2.22 kB
JavaScript
;
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var io = require('socket.io-client');
var Emitter = require('namespace-emitter');
var parseUrl = require('url-parse');
/**
* WebSocket status API client for Transloadit.
*/
module.exports = function () {
function TransloaditSocket(url, assembly) {
_classCallCheck(this, TransloaditSocket);
var emitter = Emitter();
this.on = emitter.on.bind(emitter);
this.off = emitter.off.bind(emitter);
this.emit = emitter.emit.bind(emitter);
var parsed = parseUrl(url);
this.assembly = assembly;
this.socket = io.connect(parsed.origin, {
path: parsed.pathname
});
this.attachDefaultHandlers();
}
TransloaditSocket.prototype.attachDefaultHandlers = function attachDefaultHandlers() {
var _this = this;
this.socket.on('connect', function () {
_this.socket.emit('assembly_connect', {
id: _this.assembly.assembly_id
});
_this.emit('connect');
});
this.socket.on('assembly_finished', function () {
_this.emit('finished');
_this.close();
});
this.socket.on('assembly_upload_finished', function (file) {
_this.emit('upload', file);
});
this.socket.on('assembly_uploading_finished', function () {
_this.emit('executing');
});
this.socket.on('assembly_upload_meta_data_extracted', function () {
_this.emit('metadata');
});
this.socket.on('assembly_result_finished', function (stepName, result) {
_this.emit('result', stepName, result);
});
this.socket.on('assembly_error', function (err) {
_this.emit('error', _extends(new Error(err.message), err));
});
};
TransloaditSocket.prototype.close = function close() {
this.socket.disconnect();
};
return TransloaditSocket;
}();
//# sourceMappingURL=Socket.js.map