@altabsrl/nativescript-socket.io
Version:
Full-featured Socket.IO client implementation for NativeScript
174 lines • 6.6 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var socketio_common_1 = require("./socketio.common");
exports.enableDebug = socketio_common_1.enableDebug;
exports.disableDebug = socketio_common_1.disableDebug;
var helpers_1 = require("./helpers");
SocketIOClient;
SocketAckEmitter;
OnAckCallback;
SocketEngine;
var NAMESPACE_REGEXP = /^https?\:\/\/[^\/]*(\/.*)$/i;
var SocketIO = (function (_super) {
__extends(SocketIO, _super);
function SocketIO(uri, options) {
if (options === void 0) { options = {}; }
var _this = _super.call(this) || this;
var _options = {};
if (NAMESPACE_REGEXP.test(uri)) {
_options.nsp = uri.match(NAMESPACE_REGEXP)[1] || '/';
}
else {
_options.nsp = '/';
}
if (options.query) {
_options.connectParams = {};
if (typeof options.query === 'string') {
options.query.split('&').forEach(function (pair) {
pair = pair.split('=').map(decodeURIComponent);
_options.connectParams[pair[0]] = pair[1];
});
}
else {
Object.keys(options.query).forEach(function (key) {
_options.connectParams[key] = String(options.query[key]);
});
}
}
if (options.forceWebsockets) {
_options.forceWebsockets = true;
}
if (options.ios) {
Object.keys(options.ios).forEach(function (prop) {
_options[prop] = options.ios[prop];
});
}
_this.ios = SocketIOClient.alloc().initWithSocketURLConfig(NSURL.URLWithString(uri), _options);
return _this;
}
Object.defineProperty(SocketIO.prototype, "connected", {
get: function () {
return this.ios && this.ios.engine.connected;
},
enumerable: true,
configurable: true
});
SocketIO.prototype.connect = function () {
this.ios.connect();
};
SocketIO.prototype.disconnect = function () {
this.ios.disconnect();
};
SocketIO.prototype.on = function (event, callback) {
var listener = function (data, ack) {
var payload = helpers_1.deserialize(data);
socketio_common_1.debug('on', event, payload, ack && ack.expected ? 'ack' : '');
if (ack && ack.expected) {
var _ack = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
socketio_common_1.debug('on', event, 'ack', args);
args = args.map(helpers_1.serialize);
ack.with(args);
};
payload.push(_ack);
}
callback.apply(null, payload);
};
var listenerId = this.ios.onCallback(event, listener);
this._listeners.set(callback, listenerId);
return this;
};
SocketIO.prototype.once = function (event, callback) {
var listener = function (data, ack) {
var payload = helpers_1.deserialize(data);
socketio_common_1.debug('once', event, payload, ack && ack.expected ? 'ack' : '');
if (ack && ack.expected) {
var _ack = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
socketio_common_1.debug('once', event, 'ack', args);
args = args.map(helpers_1.serialize);
ack.with(args);
};
payload.push(_ack);
}
callback.apply(null, payload);
};
var listenerId = this.ios.onceCallback(event, listener);
this._listeners.set(callback, listenerId);
return this;
};
SocketIO.prototype.off = function (event, callback) {
socketio_common_1.debug('off', event, callback);
if (callback) {
var listenerId = this._listeners.get(callback);
if (listenerId) {
this.ios.offWithId(listenerId);
this._listeners.delete(callback);
}
}
else {
this.ios.off(event);
}
return this;
};
SocketIO.prototype.emit = function (event) {
var payload = [];
for (var _i = 1; _i < arguments.length; _i++) {
payload[_i - 1] = arguments[_i];
}
var ack = payload.pop();
if (typeof ack === 'undefined') {
ack = null;
}
else if (typeof ack !== 'function') {
payload.push(ack);
ack = null;
}
socketio_common_1.debug('emit', event, payload, ack ? 'ack' : '');
var _payload = payload.map(helpers_1.serialize);
if (ack) {
var _ack = function (args) {
args = helpers_1.deserialize(args);
socketio_common_1.debug('emit', event, 'ack', args);
ack.apply(null, args);
};
this.ios.emitWithAckWith(event, _payload).timingOutAfterCallback(0, _ack);
}
else {
this.ios.emitWith(event, _payload);
}
return this;
};
SocketIO.prototype.removeAllListeners = function () {
this.ios.removeAllHandlers();
return this;
};
return SocketIO;
}(socketio_common_1.Common));
exports.SocketIO = SocketIO;
function connect(uri, options) {
var socketio = new SocketIO(uri, options || {});
socketio.connect();
return socketio;
}
exports.connect = connect;
//# sourceMappingURL=socketio.ios.js.map