diff --git a/.gitignore b/.gitignore index 38656df..2095b4f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ node_modules/ pages/ public/ - +coverage/ diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json deleted file mode 100644 index 2889dc5..0000000 --- a/coverage/coverage-final.json +++ /dev/null @@ -1,3 +0,0 @@ -{ -"/Users/philkunz/gitlab/pushrocks/dnsly/dist/index.js":{"path":"/Users/philkunz/gitlab/pushrocks/dnsly/dist/index.js","s":{"1":1,"2":1,"3":1,"4":3,"5":3,"6":3,"7":3,"8":3,"9":3,"10":1,"11":1,"12":1,"13":1,"14":0,"15":1,"16":1,"17":2,"18":0,"19":1,"20":1,"21":1,"22":1,"23":2,"24":2,"25":2,"26":1,"27":3,"28":3,"29":3,"30":0,"31":3,"32":3,"33":2,"34":2,"35":2,"36":2,"37":0,"38":1,"39":1},"b":{"1":[3,3],"2":[3,0],"3":[1,0],"4":[0,1],"5":[0,2],"6":[0,3],"7":[2,0]},"f":{"1":1,"2":1,"3":1,"4":2,"5":1,"6":2,"7":3,"8":3,"9":2,"10":2},"fnMap":{"1":{"name":"(anonymous_1)","line":3,"loc":{"start":{"line":3,"column":19},"end":{"line":3,"column":31}}},"2":{"name":"defineProperties","line":3,"loc":{"start":{"line":3,"column":33},"end":{"line":3,"column":74}}},"3":{"name":"(anonymous_3)","line":3,"loc":{"start":{"line":3,"column":357},"end":{"line":3,"column":405}}},"4":{"name":"_classCallCheck","line":5,"loc":{"start":{"line":5,"column":0},"end":{"line":5,"column":48}}},"5":{"name":"(anonymous_5)","line":13,"loc":{"start":{"line":13,"column":12},"end":{"line":13,"column":24}}},"6":{"name":"Dnsly","line":17,"loc":{"start":{"line":17,"column":4},"end":{"line":17,"column":35}}},"7":{"name":"getRecord","line":30,"loc":{"start":{"line":30,"column":15},"end":{"line":30,"column":64}}},"8":{"name":"(anonymous_8)","line":37,"loc":{"start":{"line":37,"column":53},"end":{"line":37,"column":73}}},"9":{"name":"close","line":51,"loc":{"start":{"line":51,"column":15},"end":{"line":51,"column":32}}},"10":{"name":"_setDnsProvider","line":60,"loc":{"start":{"line":60,"column":15},"end":{"line":60,"column":53}}}},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":564}},"2":{"start":{"line":3,"column":33},"end":{"line":3,"column":349}},"3":{"start":{"line":3,"column":76},"end":{"line":3,"column":347}},"4":{"start":{"line":3,"column":117},"end":{"line":3,"column":143}},"5":{"start":{"line":3,"column":144},"end":{"line":3,"column":199}},"6":{"start":{"line":3,"column":200},"end":{"line":3,"column":231}},"7":{"start":{"line":3,"column":232},"end":{"line":3,"column":286}},"8":{"start":{"line":3,"column":259},"end":{"line":3,"column":286}},"9":{"start":{"line":3,"column":287},"end":{"line":3,"column":345}},"10":{"start":{"line":3,"column":350},"end":{"line":3,"column":559}},"11":{"start":{"line":3,"column":407},"end":{"line":3,"column":475}},"12":{"start":{"line":3,"column":423},"end":{"line":3,"column":475}},"13":{"start":{"line":3,"column":476},"end":{"line":3,"column":536}},"14":{"start":{"line":3,"column":493},"end":{"line":3,"column":536}},"15":{"start":{"line":3,"column":537},"end":{"line":3,"column":556}},"16":{"start":{"line":5,"column":0},"end":{"line":5,"column":153}},"17":{"start":{"line":5,"column":50},"end":{"line":5,"column":151}},"18":{"start":{"line":5,"column":92},"end":{"line":5,"column":149}},"19":{"start":{"line":7,"column":0},"end":{"line":7,"column":21}},"20":{"start":{"line":8,"column":0},"end":{"line":8,"column":41}},"21":{"start":{"line":13,"column":0},"end":{"line":71,"column":4}},"22":{"start":{"line":17,"column":4},"end":{"line":22,"column":5}},"23":{"start":{"line":18,"column":8},"end":{"line":18,"column":37}},"24":{"start":{"line":20,"column":8},"end":{"line":20,"column":45}},"25":{"start":{"line":21,"column":8},"end":{"line":21,"column":53}},"26":{"start":{"line":28,"column":4},"end":{"line":68,"column":8}},"27":{"start":{"line":31,"column":12},"end":{"line":31,"column":33}},"28":{"start":{"line":32,"column":12},"end":{"line":42,"column":15}},"29":{"start":{"line":38,"column":16},"end":{"line":40,"column":17}},"30":{"start":{"line":39,"column":20},"end":{"line":39,"column":37}},"31":{"start":{"line":41,"column":16},"end":{"line":41,"column":34}},"32":{"start":{"line":43,"column":12},"end":{"line":43,"column":32}},"33":{"start":{"line":52,"column":12},"end":{"line":52,"column":45}},"34":{"start":{"line":61,"column":12},"end":{"line":66,"column":13}},"35":{"start":{"line":62,"column":16},"end":{"line":62,"column":45}},"36":{"start":{"line":63,"column":16},"end":{"line":63,"column":40}},"37":{"start":{"line":65,"column":16},"end":{"line":65,"column":56}},"38":{"start":{"line":70,"column":4},"end":{"line":70,"column":17}},"39":{"start":{"line":73,"column":0},"end":{"line":73,"column":22}}},"branchMap":{"1":{"line":3,"type":"binary-expr","locations":[{"start":{"line":3,"column":168},"end":{"line":3,"column":189}},{"start":{"line":3,"column":193},"end":{"line":3,"column":198}}]},"2":{"line":3,"type":"if","locations":[{"start":{"line":3,"column":232},"end":{"line":3,"column":232}},{"start":{"line":3,"column":232},"end":{"line":3,"column":232}}]},"3":{"line":3,"type":"if","locations":[{"start":{"line":3,"column":407},"end":{"line":3,"column":407}},{"start":{"line":3,"column":407},"end":{"line":3,"column":407}}]},"4":{"line":3,"type":"if","locations":[{"start":{"line":3,"column":476},"end":{"line":3,"column":476}},{"start":{"line":3,"column":476},"end":{"line":3,"column":476}}]},"5":{"line":5,"type":"if","locations":[{"start":{"line":5,"column":50},"end":{"line":5,"column":50}},{"start":{"line":5,"column":50},"end":{"line":5,"column":50}}]},"6":{"line":38,"type":"if","locations":[{"start":{"line":38,"column":16},"end":{"line":38,"column":16}},{"start":{"line":38,"column":16},"end":{"line":38,"column":16}}]},"7":{"line":61,"type":"if","locations":[{"start":{"line":61,"column":12},"end":{"line":61,"column":12}},{"start":{"line":61,"column":12},"end":{"line":61,"column":12}}]}},"l":{"3":3,"5":2,"7":1,"8":1,"13":1,"17":1,"18":2,"20":2,"21":2,"28":1,"31":3,"32":3,"38":3,"39":0,"41":3,"43":3,"52":2,"61":2,"62":2,"63":2,"65":0,"70":1,"73":1}}, -"/Users/philkunz/gitlab/pushrocks/dnsly/dist/dnsly.plugins.js":{"path":"/Users/philkunz/gitlab/pushrocks/dnsly/dist/dnsly.plugins.js","s":{"1":1,"2":1,"3":1,"4":1,"5":1},"b":{},"f":{},"fnMap":{},"statementMap":{"1":{"start":{"line":3,"column":0},"end":{"line":3,"column":26}},"2":{"start":{"line":4,"column":0},"end":{"line":4,"column":37}},"3":{"start":{"line":5,"column":0},"end":{"line":5,"column":30}},"4":{"start":{"line":6,"column":0},"end":{"line":6,"column":38}},"5":{"start":{"line":7,"column":0},"end":{"line":7,"column":30}}},"branchMap":{},"l":{"3":1,"4":1,"5":1,"6":1,"7":1}}} diff --git a/coverage/lcov.info b/coverage/lcov.info deleted file mode 100644 index e81b1d4..0000000 --- a/coverage/lcov.info +++ /dev/null @@ -1,80 +0,0 @@ -TN: -SF:/Users/philkunz/gitlab/pushrocks/dnsly/dist/index.js -FN:3,(anonymous_1) -FN:3,defineProperties -FN:3,(anonymous_3) -FN:5,_classCallCheck -FN:13,(anonymous_5) -FN:17,Dnsly -FN:30,getRecord -FN:37,(anonymous_8) -FN:51,close -FN:60,_setDnsProvider -FNF:10 -FNH:10 -FNDA:1,(anonymous_1) -FNDA:1,defineProperties -FNDA:1,(anonymous_3) -FNDA:2,_classCallCheck -FNDA:1,(anonymous_5) -FNDA:2,Dnsly -FNDA:3,getRecord -FNDA:3,(anonymous_8) -FNDA:2,close -FNDA:2,_setDnsProvider -DA:3,3 -DA:5,2 -DA:7,1 -DA:8,1 -DA:13,1 -DA:17,1 -DA:18,2 -DA:20,2 -DA:21,2 -DA:28,1 -DA:31,3 -DA:32,3 -DA:38,3 -DA:39,0 -DA:41,3 -DA:43,3 -DA:52,2 -DA:61,2 -DA:62,2 -DA:63,2 -DA:65,0 -DA:70,1 -DA:73,1 -LF:23 -LH:21 -BRDA:3,1,0,3 -BRDA:3,1,1,3 -BRDA:3,2,0,3 -BRDA:3,2,1,0 -BRDA:3,3,0,1 -BRDA:3,3,1,0 -BRDA:3,4,0,0 -BRDA:3,4,1,1 -BRDA:5,5,0,0 -BRDA:5,5,1,2 -BRDA:38,6,0,0 -BRDA:38,6,1,3 -BRDA:61,7,0,2 -BRDA:61,7,1,0 -BRF:14 -BRH:8 -end_of_record -TN: -SF:/Users/philkunz/gitlab/pushrocks/dnsly/dist/dnsly.plugins.js -FNF:0 -FNH:0 -DA:3,1 -DA:4,1 -DA:5,1 -DA:6,1 -DA:7,1 -LF:5 -LH:5 -BRF:0 -BRH:0 -end_of_record diff --git a/dist/dnsly.plugins.d.ts b/dist/dnsly.plugins.d.ts index cc99945..f24c7aa 100644 --- a/dist/dnsly.plugins.d.ts +++ b/dist/dnsly.plugins.d.ts @@ -1,4 +1,4 @@ import 'typings-global'; import * as beautylog from 'beautylog'; -declare let dnsSocket: any; -export { beautylog, dnsSocket }; +import * as dns from 'dns'; +export { beautylog, dns }; diff --git a/dist/dnsly.plugins.js b/dist/dnsly.plugins.js index ec50c8b..03b72f2 100644 --- a/dist/dnsly.plugins.js +++ b/dist/dnsly.plugins.js @@ -2,6 +2,6 @@ require("typings-global"); const beautylog = require("beautylog"); exports.beautylog = beautylog; -let dnsSocket = require('dns-socket'); -exports.dnsSocket = dnsSocket; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zbHkucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2Ruc2x5LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUN2Qix1Q0FBc0M7QUFJbEMsOEJBQVM7QUFIYixJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUE7QUFJakMsOEJBQVMifQ== \ No newline at end of file +const dns = require("dns"); +exports.dns = dns; +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zbHkucGx1Z2lucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2Ruc2x5LnBsdWdpbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDBCQUF1QjtBQUN2Qix1Q0FBc0M7QUFJbEMsOEJBQVM7QUFIYiwyQkFBMEI7QUFJdEIsa0JBQUcifQ== \ No newline at end of file diff --git a/dist/index.d.ts b/dist/index.d.ts index 6e63b9d..f35a3a4 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts @@ -8,7 +8,6 @@ export declare type TDnsRecordType = 'A' | 'AAAA' | 'CNAME' | 'PTR' | 'MX' | 'NA export declare class Dnsly { dnsServerIp: string; dnsServerPort: number; - dnsSocketInstance: any; /** * constructor for class dnsly */ @@ -17,10 +16,6 @@ export declare class Dnsly { * gets a record */ getRecord(recordNameArg: string, recordTypeArg: TDnsRecordType): q.Promise<{}>; - /** - * close the dnsly instance - */ - close(): void; /** * set the DNS provider */ diff --git a/dist/index.js b/dist/index.js index 4a07f8d..33435d4 100644 --- a/dist/index.js +++ b/dist/index.js @@ -10,32 +10,20 @@ class Dnsly { */ constructor(dnsProviderArg) { this._setDnsProvider(dnsProviderArg); - this.dnsSocketInstance = plugins.dnsSocket(); } /** * gets a record */ getRecord(recordNameArg, recordTypeArg) { let done = q.defer(); - this.dnsSocketInstance.query({ - questions: [{ - type: recordTypeArg, - name: recordNameArg - }] - }, this.dnsServerPort, this.dnsServerIp, (err, res) => { + plugins.dns.resolve(recordNameArg, recordTypeArg, (err, addresses) => { if (err) { done.reject(err); } - done.resolve(res); + done.resolve(addresses); }); return done.promise; } - /** - * close the dnsly instance - */ - close() { - this.dnsSocketInstance.destroy(); - } /** * set the DNS provider */ @@ -43,6 +31,7 @@ class Dnsly { if (dnsProvider === 'google') { this.dnsServerIp = '8.8.8.8'; this.dnsServerPort = 53; + plugins.dns.setServers(['8.8.8.8', '8.8.4.4']); } else { throw new Error('unknown dns provider'); @@ -50,4 +39,4 @@ class Dnsly { } } exports.Dnsly = Dnsly; -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUJBQXNCO0FBQ3RCLDJDQUEwQztBQWMxQzs7R0FFRztBQUNIO0lBSUk7O09BRUc7SUFDSCxZQUFZLGNBQTRCO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDcEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQTtJQUNoRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxTQUFTLENBQUMsYUFBcUIsRUFBRSxhQUE2QjtRQUMxRCxJQUFJLElBQUksR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FDeEI7WUFDSSxTQUFTLEVBQUUsQ0FBQztvQkFDUixJQUFJLEVBQUUsYUFBYTtvQkFDbkIsSUFBSSxFQUFFLGFBQWE7aUJBQ3RCLENBQUM7U0FDTCxFQUNELElBQUksQ0FBQyxhQUFhLEVBQ2xCLElBQUksQ0FBQyxXQUFXLEVBQ2hCLENBQUMsR0FBRyxFQUFFLEdBQUc7WUFDTCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDckIsQ0FBQyxDQUFDLENBQUE7UUFDTixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sRUFBRSxDQUFBO0lBQ3BDLENBQUM7SUFFRDs7T0FFRztJQUNLLGVBQWUsQ0FBQyxXQUF5QjtRQUM3QyxFQUFFLENBQUMsQ0FBQyxXQUFXLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQTtZQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQTtRQUMzQixDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7UUFDM0MsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQXJERCxzQkFxREMifQ== \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsdUJBQXNCO0FBQ3RCLDJDQUEwQztBQWMxQzs7R0FFRztBQUNIO0lBR0k7O09BRUc7SUFDSCxZQUFZLGNBQTRCO1FBQ3BDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLGFBQXFCLEVBQUUsYUFBNkI7UUFDMUQsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFBO1FBQ3BCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBQyxhQUFhLEVBQUUsQ0FBQyxHQUFHLEVBQUUsU0FBUztZQUM1RCxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2dCQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDcEIsQ0FBQztZQUNELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUE7UUFDM0IsQ0FBQyxDQUFDLENBQUE7UUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQTtJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxlQUFlLENBQUMsV0FBeUI7UUFDN0MsRUFBRSxDQUFDLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxTQUFTLENBQUE7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxFQUFFLENBQUE7WUFDdkIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQTtRQUNqRCxDQUFDO1FBQUMsSUFBSSxDQUFDLENBQUM7WUFDSixNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixDQUFDLENBQUE7UUFDM0MsQ0FBQztJQUNMLENBQUM7Q0FDSjtBQXBDRCxzQkFvQ0MifQ== \ No newline at end of file diff --git a/test/test.js b/test/test.js index 249e831..7eb8802 100644 --- a/test/test.js +++ b/test/test.js @@ -8,7 +8,7 @@ describe('dnsly', function () { testDnsly = new dnsly.Dnsly('google'); should(testDnsly).be.instanceOf(dnsly.Dnsly); }); - it('should, get a dns record for a domain when called quickly', function (done) { + it('should, get a dns record for a domain', function (done) { testDnsly.getRecord('google.com', 'A').then(res => { console.log(res); done(); @@ -17,33 +17,14 @@ describe('dnsly', function () { done(err); }); }); - it('should, get a dns record for a domain when called with timeout', function (done) { - setTimeout(() => { - testDnsly.getRecord('google.com', 'A').then(res => { - console.log(res); - done(); - }).catch(err => { - console.log(err); - done(err); - }); - }, 1000); - }); - it('should get a dns record for a domain when called with second instance and timeout', function (done) { - this.timeout(10000); - let testDnsly2 = new dnsly.Dnsly('google'); - setTimeout(() => { - testDnsly2.getRecord('google.com', 'MX').then(res => { - console.log(res); - done(); - testDnsly2.close(); - }).catch(err => { - console.log(err); - done(err); - }); - }, 5000); - }); - it('should close the instance', function () { - testDnsly.close(); + it('should, get a mx record for a domain', function (done) { + testDnsly.getRecord('google.com', 'MX').then(res => { + console.log(res); + done(); + }).catch(err => { + console.log(err); + done(err); + }); }); }); -//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFFaEMsdUNBQXNDO0FBRXRDLElBQUksU0FBc0IsQ0FBQTtBQUUxQixRQUFRLENBQUMsT0FBTyxFQUFFO0lBQ2QsRUFBRSxDQUFDLG9DQUFvQyxFQUFFO1FBQ3JDLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLDJEQUEyRCxFQUFFLFVBQVUsSUFBSTtRQUMxRSxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2hCLElBQUksRUFBRSxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUc7WUFDUixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNiLENBQUMsQ0FBQyxDQUFBO0lBRU4sQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsZ0VBQWdFLEVBQUUsVUFBVSxJQUFJO1FBQy9FLFVBQVUsQ0FBQztZQUNQLFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNoQixJQUFJLEVBQUUsQ0FBQTtZQUNWLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHO2dCQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7Z0JBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtZQUNiLENBQUMsQ0FBQyxDQUFBO1FBQ04sQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFBO0lBRVosQ0FBQyxDQUFDLENBQUE7SUFDRixFQUFFLENBQUMsbUZBQW1GLEVBQUUsVUFBVSxJQUFJO1FBQ2xHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbkIsSUFBSSxVQUFVLEdBQUcsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBQzFDLFVBQVUsQ0FBQztZQUNQLFVBQVUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHO2dCQUM3QyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO2dCQUNoQixJQUFJLEVBQUUsQ0FBQTtnQkFDTixVQUFVLENBQUMsS0FBSyxFQUFFLENBQUE7WUFDdEIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUc7Z0JBQ1IsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtnQkFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2IsQ0FBQyxDQUFDLENBQUE7UUFDTixDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUE7SUFFWixDQUFDLENBQUMsQ0FBQTtJQUVGLEVBQUUsQ0FBQywyQkFBMkIsRUFBRTtRQUM1QixTQUFTLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDckIsQ0FBQyxDQUFDLENBQUE7QUFDTixDQUFDLENBQUMsQ0FBQSJ9 \ No newline at end of file +//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLHdCQUFxQjtBQUNyQixpQ0FBZ0M7QUFFaEMsdUNBQXNDO0FBRXRDLElBQUksU0FBc0IsQ0FBQTtBQUUxQixRQUFRLENBQUMsT0FBTyxFQUFFO0lBQ2QsRUFBRSxDQUFDLG9DQUFvQyxFQUFFO1FBQ3JDLFNBQVMsR0FBRyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUE7UUFDckMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2hELENBQUMsQ0FBQyxDQUFBO0lBRUYsRUFBRSxDQUFDLHVDQUF1QyxFQUFFLFVBQVUsSUFBSTtRQUN0RCxTQUFTLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRztZQUMzQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2hCLElBQUksRUFBRSxDQUFBO1FBQ1YsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUc7WUFDUixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFBO1lBQ2hCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUNiLENBQUMsQ0FBQyxDQUFBO0lBRU4sQ0FBQyxDQUFDLENBQUE7SUFFRixFQUFFLENBQUMsc0NBQXNDLEVBQUUsVUFBVSxJQUFJO1FBQ3JELFNBQVMsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHO1lBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDaEIsSUFBSSxFQUFFLENBQUE7UUFDVixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRztZQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7WUFDaEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1FBQ2IsQ0FBQyxDQUFDLENBQUE7SUFFTixDQUFDLENBQUMsQ0FBQTtBQUNOLENBQUMsQ0FBQyxDQUFBIn0= \ No newline at end of file diff --git a/test/test.ts b/test/test.ts index 4be2549..7d7f92d 100644 --- a/test/test.ts +++ b/test/test.ts @@ -22,7 +22,14 @@ describe('dnsly', function () { }) - it('should close the instance', function () { - testDnsly.close() + it('should, get a mx record for a domain', function (done) { + testDnsly.getRecord('google.com', 'MX').then(res => { + console.log(res) + done() + }).catch(err => { + console.log(err) + done(err) + }) + }) }) diff --git a/ts/dnsly.plugins.ts b/ts/dnsly.plugins.ts index 9f25d10..e0c374b 100644 --- a/ts/dnsly.plugins.ts +++ b/ts/dnsly.plugins.ts @@ -1,8 +1,8 @@ import 'typings-global' import * as beautylog from 'beautylog' -let dnsSocket = require('dns-socket') +import * as dns from 'dns' export { beautylog, - dnsSocket + dns } diff --git a/ts/index.ts b/ts/index.ts index 309c158..50c9a3f 100644 --- a/ts/index.ts +++ b/ts/index.ts @@ -19,13 +19,11 @@ export type TDnsRecordType = 'A' export class Dnsly { dnsServerIp: string dnsServerPort: number - dnsSocketInstance /** * constructor for class dnsly */ constructor(dnsProviderArg: TDnsProvider) { this._setDnsProvider(dnsProviderArg) - this.dnsSocketInstance = plugins.dnsSocket() } /** @@ -33,31 +31,15 @@ export class Dnsly { */ getRecord(recordNameArg: string, recordTypeArg: TDnsRecordType) { let done = q.defer() - this.dnsSocketInstance.query( - { - questions: [{ - type: recordTypeArg, - name: recordNameArg - }] - }, - this.dnsServerPort, - this.dnsServerIp, - (err, res) => { - if (err) { - done.reject(err) - } - done.resolve(res) - }) + plugins.dns.resolve(recordNameArg,recordTypeArg, (err, addresses) => { + if (err) { + done.reject(err) + } + done.resolve(addresses) + }) return done.promise } - /** - * close the dnsly instance - */ - close() { - this.dnsSocketInstance.destroy() - } - /** * set the DNS provider */ @@ -65,6 +47,7 @@ export class Dnsly { if (dnsProvider === 'google') { this.dnsServerIp = '8.8.8.8' this.dnsServerPort = 53 + plugins.dns.setServers(['8.8.8.8','8.8.4.4']) } else { throw new Error('unknown dns provider') }