Skip to content

Commit 159184f

Browse files
committed
Add helper method to use the proxy in mssql.
1 parent 65540d9 commit 159184f

3 files changed

Lines changed: 136 additions & 6 deletions

File tree

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
"agent-base": "^4.2.1",
1919
"assert": "^1.4.1",
2020
"mocha": "^6.0.2",
21+
"mssql": "^4.3.2",
2122
"node-fetch": "^2.3.0",
2223
"proxy": "^0.2.4",
2324
"ts-node": "^8.0.2",

src/TediousPatch.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
import { HttpsProxySocket } from './HttpsProxySocket';
2+
3+
const debug = require('debug')('https-proxy');
4+
5+
/**
6+
* Replace the connection method on the tedious library (used by mssql)
7+
* to connect via a proxy.
8+
*
9+
* @param proxy - the proxy to use
10+
*/
11+
export function useProxy(proxy: HttpsProxySocket) {
12+
const { Connector } = require('tedious/lib/connector');
13+
Connector.prototype.execute = async function(cb: any) {
14+
debug(`opening sql connection to ${this.options.host}:${this.options.port}`);
15+
proxy.connect(this.options).then(
16+
socket => {
17+
cb(null, socket);
18+
},
19+
error => {
20+
cb(error);
21+
}
22+
);
23+
};
24+
}

yarn.lock

Lines changed: 111 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,14 @@ aws4@^1.8.0:
247247
resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f"
248248
integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==
249249

250+
babel-runtime@^6.26.0:
251+
version "6.26.0"
252+
resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe"
253+
integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4=
254+
dependencies:
255+
core-js "^2.4.0"
256+
regenerator-runtime "^0.11.0"
257+
250258
balanced-match@^1.0.0:
251259
version "1.0.0"
252260
resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767"
@@ -277,6 +285,19 @@ bcrypt-pbkdf@^1.0.0:
277285
dependencies:
278286
tweetnacl "^0.14.3"
279287

288+
big-number@0.3.1:
289+
version "0.3.1"
290+
resolved "https://registry.yarnpkg.com/big-number/-/big-number-0.3.1.tgz#ac73020c0a59bb79eb17c2ce2db77f77d974e013"
291+
integrity sha1-rHMCDApZu3nrF8LOLbd/d9l04BM=
292+
293+
bl@^1.2.2:
294+
version "1.2.2"
295+
resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.2.tgz#a160911717103c07410cef63ef51b397c025af9c"
296+
integrity sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==
297+
dependencies:
298+
readable-stream "^2.3.5"
299+
safe-buffer "^5.1.1"
300+
280301
brace-expansion@^1.1.7:
281302
version "1.1.11"
282303
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@@ -435,7 +456,12 @@ copy-descriptor@^0.1.0:
435456
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
436457
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
437458

438-
core-util-is@1.0.2:
459+
core-js@^2.4.0:
460+
version "2.6.5"
461+
resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.5.tgz#44bc8d249e7fb2ff5d00e0341a7ffb94fbf67895"
462+
integrity sha512-klh/kDpwX8hryYL14M9w/xei6vrv6sE8gTHDG7/T/+SEovB/G4ejwcfE/CBzO6Edsu+OETZMZ3wcX/EjUkrl5A==
463+
464+
core-util-is@1.0.2, core-util-is@~1.0.0:
439465
version "1.0.2"
440466
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
441467
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
@@ -465,7 +491,7 @@ debug@2.2.0:
465491
dependencies:
466492
ms "0.7.1"
467493

468-
debug@3.2.6:
494+
debug@3.2.6, debug@^3.2.6:
469495
version "3.2.6"
470496
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
471497
integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==
@@ -523,6 +549,11 @@ delayed-stream@~1.0.0:
523549
resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
524550
integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk=
525551

552+
depd@^1.1.2:
553+
version "1.1.2"
554+
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
555+
integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=
556+
526557
detect-file@^1.0.0:
527558
version "1.0.0"
528559
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
@@ -773,6 +804,11 @@ function-bind@^1.1.1:
773804
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
774805
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
775806

807+
generic-pool@^3.6:
808+
version "3.6.1"
809+
resolved "https://registry.yarnpkg.com/generic-pool/-/generic-pool-3.6.1.tgz#a51a8439ee86f0bbcf100fc1db3f45c86289deb4"
810+
integrity sha512-iMmD/pY4q0+V+f8o4twE9JPeqfNuX+gJAaIPB3B0W1lFkBOtTxBo6B0HxHPgGhzQA8jego7EWopcYq/UDJO2KA==
811+
776812
get-caller-file@^1.0.1:
777813
version "1.0.3"
778814
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a"
@@ -926,7 +962,7 @@ http-signature@~1.2.0:
926962
jsprim "^1.2.2"
927963
sshpk "^1.7.0"
928964

929-
iconv-lite@^0.4.24:
965+
iconv-lite@^0.4.23, iconv-lite@^0.4.24:
930966
version "0.4.24"
931967
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
932968
integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==
@@ -946,7 +982,7 @@ inflight@^1.0.4:
946982
once "^1.3.0"
947983
wrappy "1"
948984

949-
inherits@2:
985+
inherits@2, inherits@~2.0.3:
950986
version "2.0.3"
951987
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de"
952988
integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=
@@ -1135,7 +1171,7 @@ is-windows@^1.0.1, is-windows@^1.0.2:
11351171
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
11361172
integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==
11371173

1138-
isarray@1.0.0:
1174+
isarray@1.0.0, isarray@~1.0.0:
11391175
version "1.0.0"
11401176
resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
11411177
integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=
@@ -1410,6 +1446,15 @@ ms@2.1.1, ms@^2.1.1:
14101446
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
14111447
integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==
14121448

1449+
mssql@^4.3.2:
1450+
version "4.3.2"
1451+
resolved "https://registry.yarnpkg.com/mssql/-/mssql-4.3.2.tgz#2bebfe84ce30caefbf9a43e38ef6c7c9bfa53360"
1452+
integrity sha512-FMC/nvEjR+yMkkyPsHCiswckT7EExoKuTj9uC1yohtJuySgodzPqkJX7q+tsZsZyK8mFYo7JfX+li6/Xf+Irbg==
1453+
dependencies:
1454+
debug "^3.2.6"
1455+
generic-pool "^3.6"
1456+
tedious "^2.7.1"
1457+
14131458
mute-stream@0.0.7:
14141459
version "0.0.7"
14151460
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab"
@@ -1432,6 +1477,11 @@ nanomatch@^1.2.9:
14321477
snapdragon "^0.8.1"
14331478
to-regex "^3.0.1"
14341479

1480+
native-duplexpair@^1.0.0:
1481+
version "1.0.0"
1482+
resolved "https://registry.yarnpkg.com/native-duplexpair/-/native-duplexpair-1.0.0.tgz#7899078e64bf3c8a3d732601b3d40ff05db58fa0"
1483+
integrity sha1-eJkHjmS/PIo9cyYBs9QP8F21j6A=
1484+
14351485
nice-try@^1.0.4:
14361486
version "1.0.5"
14371487
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
@@ -1614,6 +1664,11 @@ prettier@^1.14.3:
16141664
resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.16.4.tgz#73e37e73e018ad2db9c76742e2647e21790c9717"
16151665
integrity sha512-ZzWuos7TI5CKUeQAtFd6Zhm2s6EpAD/ZLApIhsF9pRvRtM1RFo61dM/4MSRUA0SuLugA/zgrZD8m0BaY46Og7g==
16161666

1667+
process-nextick-args@~2.0.0:
1668+
version "2.0.0"
1669+
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa"
1670+
integrity sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==
1671+
16171672
proxy@^0.2.4:
16181673
version "0.2.4"
16191674
resolved "https://registry.yarnpkg.com/proxy/-/proxy-0.2.4.tgz#bdd80e5efff3c33b2bf0bf2a10ce469bbb7d5e3e"
@@ -1651,6 +1706,24 @@ qs@~6.5.2:
16511706
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
16521707
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
16531708

1709+
readable-stream@^2.3.5, readable-stream@^2.3.6:
1710+
version "2.3.6"
1711+
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf"
1712+
integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==
1713+
dependencies:
1714+
core-util-is "~1.0.0"
1715+
inherits "~2.0.3"
1716+
isarray "~1.0.0"
1717+
process-nextick-args "~2.0.0"
1718+
safe-buffer "~5.1.1"
1719+
string_decoder "~1.1.1"
1720+
util-deprecate "~1.0.1"
1721+
1722+
regenerator-runtime@^0.11.0:
1723+
version "0.11.1"
1724+
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9"
1725+
integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==
1726+
16541727
regex-not@^1.0.0, regex-not@^1.0.2:
16551728
version "1.0.2"
16561729
resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c"
@@ -1745,7 +1818,7 @@ rxjs@^6.4.0:
17451818
dependencies:
17461819
tslib "^1.9.0"
17471820

1748-
safe-buffer@^5.0.1, safe-buffer@^5.1.2:
1821+
safe-buffer@^5.0.1, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
17491822
version "5.1.2"
17501823
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
17511824
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
@@ -1880,6 +1953,11 @@ split-string@^3.0.1, split-string@^3.0.2:
18801953
dependencies:
18811954
extend-shallow "^3.0.0"
18821955

1956+
sprintf-js@^1.1.1:
1957+
version "1.1.2"
1958+
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
1959+
integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==
1960+
18831961
sprintf-js@~1.0.2:
18841962
version "1.0.3"
18851963
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c"
@@ -1925,6 +2003,13 @@ string-width@^1.0.1:
19252003
is-fullwidth-code-point "^2.0.0"
19262004
strip-ansi "^4.0.0"
19272005

2006+
string_decoder@~1.1.1:
2007+
version "1.1.1"
2008+
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
2009+
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
2010+
dependencies:
2011+
safe-buffer "~5.1.0"
2012+
19282013
strip-ansi@^3.0.0, strip-ansi@^3.0.1:
19292014
version "3.0.1"
19302015
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"
@@ -1970,6 +2055,21 @@ supports-color@^5.3.0:
19702055
dependencies:
19712056
has-flag "^3.0.0"
19722057

2058+
tedious@^2.7.1:
2059+
version "2.7.1"
2060+
resolved "https://registry.yarnpkg.com/tedious/-/tedious-2.7.1.tgz#5308edebdd33767ca67b36fc71b2ab9c54675278"
2061+
integrity sha512-u3ciATGm5byim91b3+c3MVTvY1zKjDmhUhnBQZXKymT2Vb9w322dziPQY6MhBNyBEcNONPsAMR+7/Uub7NYABQ==
2062+
dependencies:
2063+
babel-runtime "^6.26.0"
2064+
big-number "0.3.1"
2065+
bl "^1.2.2"
2066+
depd "^1.1.2"
2067+
iconv-lite "^0.4.23"
2068+
native-duplexpair "^1.0.0"
2069+
punycode "^2.1.0"
2070+
readable-stream "^2.3.6"
2071+
sprintf-js "^1.1.1"
2072+
19732073
through@^2.3.6:
19742074
version "2.3.8"
19752075
resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"
@@ -2093,6 +2193,11 @@ use@^3.1.0:
20932193
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
20942194
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
20952195

2196+
util-deprecate@~1.0.1:
2197+
version "1.0.2"
2198+
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
2199+
integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=
2200+
20962201
util@0.10.3:
20972202
version "0.10.3"
20982203
resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9"

0 commit comments

Comments
 (0)