django-vue3-admin-web/node_modules/@uppy/companion-client/lib/Socket.js
2025-10-20 21:21:14 +08:00

132 lines
3.6 KiB
JavaScript

"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;