From 53fbaa1514ed0bfbc9b1ea43942df9c087acd714 Mon Sep 17 00:00:00 2001 From: "xxai.art" Date: Mon, 21 Aug 2023 19:20:15 +0800 Subject: [PATCH 1/2] add support for ipv6 addr postgres://user:password@[2a02:c206:2140:481::1]:1234/apg-o add support for ipv6 postgres://user:password@[2a02:c206:2140:481::1]:1234/apg-o --- src/index.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/index.js b/src/index.js index 936be5cc..53734907 100644 --- a/src/index.js +++ b/src/index.js @@ -430,7 +430,7 @@ function parseOptions(a, b) { , o = (typeof a === 'string' ? b : a) || {} , { url, multihost } = parseUrl(a) , query = [...url.searchParams].reduce((a, [b, c]) => (a[b] = c, a), {}) - , host = o.hostname || o.host || multihost || url.hostname || env.PGHOST || 'localhost' + , host = o.hostname || o.host || multihost || url.host || env.PGHOST || 'localhost' , port = o.port || url.port || env.PGPORT || 5432 , user = o.user || o.username || url.username || env.PGUSERNAME || env.PGUSER || osUsername() @@ -456,8 +456,8 @@ function parseOptions(a, b) { } return { - host : Array.isArray(host) ? host : host.split(',').map(x => x.split(':')[0]), - port : Array.isArray(port) ? port : host.split(',').map(x => parseInt(x.split(':')[1] || port)), + host : Array.isArray(host) ? host : host.split(',').map(x => new URL(x).hostname.replace(/[\[\]]/g,'')), + port : Array.isArray(port) ? port : host.split(',').map(x => parseInt(new URL(x).port || port)), path : o.path || host.indexOf('/') > -1 && host + '/.s.PGSQL.' + port, database : o.database || o.db || (url.pathname || '').slice(1) || env.PGDATABASE || user, user : user, From b88c3b5f965907be30dfd56c9bb6376c176747a4 Mon Sep 17 00:00:00 2001 From: "xxai.art" Date: Mon, 21 Aug 2023 19:55:55 +0800 Subject: [PATCH 2/2] Update index.js --- src/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index 53734907..ed7f3e25 100644 --- a/src/index.js +++ b/src/index.js @@ -456,8 +456,8 @@ function parseOptions(a, b) { } return { - host : Array.isArray(host) ? host : host.split(',').map(x => new URL(x).hostname.replace(/[\[\]]/g,'')), - port : Array.isArray(port) ? port : host.split(',').map(x => parseInt(new URL(x).port || port)), + host : Array.isArray(host) ? host : host.split(',').map(x => new URL("s://"+x).hostname.replace(/[\[\]]/g,'')), + port : Array.isArray(port) ? port : host.split(',').map(x => parseInt(new URL("s://"+x).port || port)), path : o.path || host.indexOf('/') > -1 && host + '/.s.PGSQL.' + port, database : o.database || o.db || (url.pathname || '').slice(1) || env.PGDATABASE || user, user : user,