MCPcopy Create free account
hub / github.com/porsager/postgres / createSocket

Function createSocket

deno/polyfills.js:14–140  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12}
13
14function createSocket() {
15 let paused
16 , resume
17 , keepAlive
18
19 const socket = {
20 error,
21 success,
22 readyState: 'open',
23 setKeepAlive: x => {
24 keepAlive = x
25 socket.raw && socket.raw.setKeepAlive && socket.raw.setKeepAlive(x)
26 },
27 connect: (port, hostname) => {
28 socket.raw = null
29 socket.readyState = 'connecting'
30 typeof port === 'string'
31 ? Deno.connect({ transport: 'unix', path: socket.path = port }).then(success, error)
32 : Deno.connect({ transport: 'tcp', port: socket.port = port, hostname: socket.hostname = hostname || 'localhost' }).then(success, error) // eslint-disable-line
33 return socket
34 },
35 pause: () => {
36 paused = new Promise(r => resume = r)
37 },
38 resume: () => {
39 resume && resume()
40 paused = null
41 },
42 isPaused: () => !!paused,
43 removeAllListeners: () => socket.events = events(),
44 events: events(),
45 raw: null,
46 on: (x, fn) => socket.events[x].push(fn),
47 once: (x, fn) => {
48 if (x === 'data')
49 socket.break = true
50 const e = socket.events[x]
51 e.push(once)
52 once.once = fn
53 function once(...args) {
54 fn(...args)
55 e.indexOf(once) > -1 && e.splice(e.indexOf(once), 1)
56 }
57 },
58 removeListener: (x, fn) => {
59 socket.events[x] = socket.events[x].filter(x => x !== fn && x.once !== fn)
60 },
61 write: (x, cb) => {
62 socket.raw.write(x).then(l => {
63 l < x.length
64 ? socket.write(x.slice(l), cb)
65 : (cb && cb(null))
66 }).catch(err => {
67 cb && cb()
68 call(socket.events.error, err)
69 })
70 return false
71 },

Callers 1

constructorMethod · 0.70

Calls 6

eventsFunction · 0.85
callFunction · 0.70
closeFunction · 0.70
writeMethod · 0.65
thenMethod · 0.45
catchMethod · 0.45

Tested by

no test coverage detected