@addapptables/ng-socket-io
Version:
socket-io module for Angular
65 lines • 4.96 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as io from 'socket.io-client';
import { Injectable } from '@angular/core';
export class SocketIoAdapter {
/**
* @param {?} url
* @param {?=} options
* @return {?}
*/
connect(url, options) {
return new Promise((/**
* @param {?} resolve
* @param {?} reject
* @return {?}
*/
(resolve, reject) => {
try {
/** @type {?} */
const ioFunc = ((/** @type {?} */ (io))).default ? ((/** @type {?} */ (io))).default : io;
/** @type {?} */
const connection = ioFunc(url, options);
resolve(connection.connect());
}
catch (error) {
reject(error.message);
}
}));
}
/**
* @param {?} connection
* @param {?} event
* @param {?} callFunction
* @return {?}
*/
bindEvent(connection, event, callFunction) {
connection.on(event, callFunction);
}
/**
* @param {?} connection
* @return {?}
*/
disconnect(connection) {
return new Promise((/**
* @param {?} resolve
* @param {?} reject
* @return {?}
*/
(resolve, reject) => {
try {
connection.disconnect();
resolve();
}
catch (error) {
reject(error.message);
}
}));
}
}
SocketIoAdapter.decorators = [
{ type: Injectable }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LWlvLmFkYXB0ZXIuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWRkYXBwdGFibGVzL25nLXNvY2tldC1pby8iLCJzb3VyY2VzIjpbImxpYi9hZGFwdGVycy9zb2NrZXQtaW8uYWRhcHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxLQUFLLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV2QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzNDLE1BQU0sT0FBTyxlQUFlOzs7Ozs7SUFFeEIsT0FBTyxDQUFDLEdBQVcsRUFBRSxPQUFvQztRQUNyRCxPQUFPLElBQUksT0FBTzs7Ozs7UUFBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJOztzQkFDTSxNQUFNLEdBQUcsQ0FBQyxtQkFBQSxFQUFFLEVBQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxtQkFBQSxFQUFFLEVBQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTs7c0JBQ3ZELFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztnQkFDdkMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2FBQ2pDO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ1osTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN6QjtRQUNMLENBQUMsRUFBQyxDQUFDO0lBQ1AsQ0FBQzs7Ozs7OztJQUVELFNBQVMsQ0FBQyxVQUFpQyxFQUFFLEtBQWEsRUFBRSxZQUFzQztRQUM5RixVQUFVLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN2QyxDQUFDOzs7OztJQUVELFVBQVUsQ0FBQyxVQUFpQztRQUN4QyxPQUFPLElBQUksT0FBTzs7Ozs7UUFBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJO2dCQUNBLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDeEIsT0FBTyxFQUFFLENBQUM7YUFDYjtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNaLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDekI7UUFDTCxDQUFDLEVBQUMsQ0FBQztJQUNQLENBQUM7OztZQTVCSixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgaW8gZnJvbSAnc29ja2V0LmlvLWNsaWVudCc7XHJcbmltcG9ydCB7IElTb2NrZXQgfSBmcm9tICdAYWRkYXBwdGFibGVzL25nLXdlYi1zb2NrZXQnO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTb2NrZXRJb0FkYXB0ZXIgaW1wbGVtZW50cyBJU29ja2V0PFNvY2tldElPQ2xpZW50LlNvY2tldCwgU29ja2V0SU9DbGllbnQuQ29ubmVjdE9wdHM+IHtcclxuXHJcbiAgICBjb25uZWN0KHVybDogc3RyaW5nLCBvcHRpb25zPzogU29ja2V0SU9DbGllbnQuQ29ubmVjdE9wdHMpOiBQcm9taXNlPFNvY2tldElPQ2xpZW50LlNvY2tldD4ge1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpb0Z1bmMgPSAoaW8gYXMgYW55KS5kZWZhdWx0ID8gKGlvIGFzIGFueSkuZGVmYXVsdCA6IGlvO1xyXG4gICAgICAgICAgICAgICAgY29uc3QgY29ubmVjdGlvbiA9IGlvRnVuYyh1cmwsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICAgICAgcmVzb2x2ZShjb25uZWN0aW9uLmNvbm5lY3QoKSk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBiaW5kRXZlbnQoY29ubmVjdGlvbjogU29ja2V0SU9DbGllbnQuU29ja2V0LCBldmVudDogc3RyaW5nLCBjYWxsRnVuY3Rpb246ICguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZCkge1xyXG4gICAgICAgIGNvbm5lY3Rpb24ub24oZXZlbnQsIGNhbGxGdW5jdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgZGlzY29ubmVjdChjb25uZWN0aW9uOiBTb2NrZXRJT0NsaWVudC5Tb2NrZXQpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgICAgICAgICB0cnkge1xyXG4gICAgICAgICAgICAgICAgY29ubmVjdGlvbi5kaXNjb25uZWN0KCk7XHJcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XHJcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgICAgICAgICByZWplY3QoZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=