Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes15kdownloads
socket_instance.js52 linesDownload Raw Back to js
1/////////////////////////////////////////////////////////////2//3// pgAdmin 4 - PostgreSQL Tools4//5// Copyright (C) 2013 - 2024, The pgAdmin Development Team6// This software is released under the PostgreSQL Licence7//8//////////////////////////////////////////////////////////////9import { io } from 'socketio';10import gettext from 'sources/gettext';11import url_for from 'sources/url_for';12 13export function openSocket(namespace, options) {14  return new Promise((resolve, reject)=>{15    const socketObj = io(namespace, {16      path: `${url_for('pgadmin.root')}/socket.io`,17      pingTimeout: 120000,18      pingInterval: 25000,19      ...options,20    });21 22    /* Once the object is created, connect event is emitted.23    Backend must implement connect and emit connected on success,24    connect_error on failure.25    */26    socketObj.on('connected', ()=>{27      resolve(socketObj);28    });29    socketObj.on('connect_error', (err)=>{30      reject(err);31    });32    socketObj.on('disconnect', (err)=>{33      reject(err);34    });35  });36}37 38export function socketApiGet(socket, endpoint, params) {39  return new Promise((resolve, reject)=>{40    socket.emit(endpoint, params);41    socket.on(`${endpoint}_success`, (data)=>{42      resolve(data);43    });44    socket.on(`${endpoint}_failed`, (data)=>{45      reject(data);46    });47    socket.on('disconnect', ()=>{48      reject(gettext('Connection to pgAdmin server has been lost'));49    });50  });51}52 
codekingpro/portable-devtools · Team Ai