1
0
Fork 0
mirror of https://github.com/DanielnetoDotCom/YouPHPTube synced 2025-10-03 09:49:28 +02:00
Oinktube/node_modules/string2compact/index.js
2023-02-17 15:04:26 -03:00

31 lines
829 B
JavaScript

const addrToIPPort = require('addr-to-ip-port')
const ipaddr = require('ipaddr.js')
module.exports = addrs => {
if (typeof addrs === 'string') {
addrs = [addrs]
}
return Buffer.concat(addrs.map(addr => {
const s = addrToIPPort(addr)
if (s.length !== 2) {
throw new Error('invalid address format, expecting: 10.10.10.5:128')
}
const ip = ipaddr.parse(s[0])
const ipBuf = Buffer.from(ip.toByteArray())
const port = s[1]
const portBuf = Buffer.allocUnsafe(2)
portBuf.writeUInt16BE(port, 0)
return Buffer.concat([ipBuf, portBuf])
}))
}
/**
* Also support this usage:
* string2compact.multi([ '10.10.10.5:128', '100.56.58.99:28525' ])
*
* for parallelism with the `compact2string` module.
*/
module.exports.multi = module.exports
module.exports.multi6 = module.exports