You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
911 B
JavaScript
39 lines
911 B
JavaScript
import socketIOClient from 'socket.io-client';
|
|
import sailsIOClient from 'sails.io.js';
|
|
|
|
import Config from '../constants/Config';
|
|
|
|
const io = sailsIOClient(socketIOClient);
|
|
|
|
io.sails.url = Config.SERVER_BASE_URL;
|
|
io.sails.autoConnect = false;
|
|
io.sails.reconnection = true;
|
|
io.sails.useCORSRouteToGetCookie = false;
|
|
io.sails.environment = process.env.NODE_ENV;
|
|
|
|
const { socket } = io;
|
|
|
|
socket.connect = socket._connect; // eslint-disable-line no-underscore-dangle
|
|
|
|
['GET', 'POST', 'PUT', 'PATCH', 'DELETE'].forEach((method) => {
|
|
socket[method.toLowerCase()] = (url, data, headers) => new Promise((resolve, reject) => {
|
|
socket.request(
|
|
{
|
|
method,
|
|
data,
|
|
headers,
|
|
url: `/api${url}`,
|
|
},
|
|
(_, { body, error }) => {
|
|
if (error) {
|
|
reject(body);
|
|
} else {
|
|
resolve(body);
|
|
}
|
|
},
|
|
);
|
|
});
|
|
});
|
|
|
|
export default socket;
|