| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- "use strict";
- let _Symbol$for, _Symbol$for2;
- function _classPrivateFieldLooseBase(receiver, privateKey) { if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) { throw new TypeError("attempted to use private field on non-instance"); } return receiver; }
- var id = 0;
- function _classPrivateFieldLooseKey(name) { return "__private_" + id++ + "_" + name; }
- const ee = require("namespace-emitter");
- var _queued = /*#__PURE__*/_classPrivateFieldLooseKey("queued");
- var _emitter = /*#__PURE__*/_classPrivateFieldLooseKey("emitter");
- var _isOpen = /*#__PURE__*/_classPrivateFieldLooseKey("isOpen");
- var _socket = /*#__PURE__*/_classPrivateFieldLooseKey("socket");
- var _handleMessage = /*#__PURE__*/_classPrivateFieldLooseKey("handleMessage");
- _Symbol$for = Symbol.for('uppy test: getSocket');
- _Symbol$for2 = Symbol.for('uppy test: getQueued');
- class UppySocket {
- constructor(opts) {
- Object.defineProperty(this, _queued, {
- writable: true,
- value: []
- });
- Object.defineProperty(this, _emitter, {
- writable: true,
- value: ee()
- });
- Object.defineProperty(this, _isOpen, {
- writable: true,
- value: false
- });
- Object.defineProperty(this, _socket, {
- writable: true,
- value: void 0
- });
- Object.defineProperty(this, _handleMessage, {
- writable: true,
- value: e => {
- try {
- const message = JSON.parse(e.data);
- this.emit(message.action, message.payload);
- } catch (err) {
- // TODO: use a more robust error handler.
- console.log(err); // eslint-disable-line no-console
- }
- }
- });
- this.opts = opts;
- if (!opts || opts.autoOpen !== false) {
- this.open();
- }
- }
- get isOpen() {
- return _classPrivateFieldLooseBase(this, _isOpen)[_isOpen];
- }
- [_Symbol$for]() {
- return _classPrivateFieldLooseBase(this, _socket)[_socket];
- }
- [_Symbol$for2]() {
- return _classPrivateFieldLooseBase(this, _queued)[_queued];
- }
- open() {
- _classPrivateFieldLooseBase(this, _socket)[_socket] = new WebSocket(this.opts.target);
- _classPrivateFieldLooseBase(this, _socket)[_socket].onopen = () => {
- _classPrivateFieldLooseBase(this, _isOpen)[_isOpen] = true;
- while (_classPrivateFieldLooseBase(this, _queued)[_queued].length > 0 && _classPrivateFieldLooseBase(this, _isOpen)[_isOpen]) {
- const first = _classPrivateFieldLooseBase(this, _queued)[_queued].shift();
- this.send(first.action, first.payload);
- }
- };
- _classPrivateFieldLooseBase(this, _socket)[_socket].onclose = () => {
- _classPrivateFieldLooseBase(this, _isOpen)[_isOpen] = false;
- };
- _classPrivateFieldLooseBase(this, _socket)[_socket].onmessage = _classPrivateFieldLooseBase(this, _handleMessage)[_handleMessage];
- }
- close() {
- var _classPrivateFieldLoo;
- (_classPrivateFieldLoo = _classPrivateFieldLooseBase(this, _socket)[_socket]) == null ? void 0 : _classPrivateFieldLoo.close();
- }
- send(action, payload) {
- // attach uuid
- if (!_classPrivateFieldLooseBase(this, _isOpen)[_isOpen]) {
- _classPrivateFieldLooseBase(this, _queued)[_queued].push({
- action,
- payload
- });
- return;
- }
- _classPrivateFieldLooseBase(this, _socket)[_socket].send(JSON.stringify({
- action,
- payload
- }));
- }
- on(action, handler) {
- _classPrivateFieldLooseBase(this, _emitter)[_emitter].on(action, handler);
- }
- emit(action, payload) {
- _classPrivateFieldLooseBase(this, _emitter)[_emitter].emit(action, payload);
- }
- once(action, handler) {
- _classPrivateFieldLooseBase(this, _emitter)[_emitter].once(action, handler);
- }
- }
- module.exports = UppySocket;
|