Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
d0527affc2 | |||
f2ebaf74d9 | |||
b6d8c36f3e | |||
587600d571 | |||
17f293ca4e |
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartdns",
|
"name": "@pushrocks/smartdns",
|
||||||
"version": "3.0.5",
|
"version": "3.0.8",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartdns",
|
"name": "@pushrocks/smartdns",
|
||||||
"version": "3.0.5",
|
"version": "3.0.8",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "smart dns methods written in TypeScript",
|
"description": "smart dns methods written in TypeScript",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
@ -5,7 +5,7 @@ import * as smartdns from '../ts/index';
|
|||||||
let testDnsly: smartdns.Smartdns;
|
let testDnsly: smartdns.Smartdns;
|
||||||
|
|
||||||
tap.test('should create an instance of Dnsly', async () => {
|
tap.test('should create an instance of Dnsly', async () => {
|
||||||
testDnsly = new smartdns.Smartdns('google');
|
testDnsly = new smartdns.Smartdns('cloudflare');
|
||||||
expect(testDnsly).to.be.instanceOf(smartdns.Smartdns);
|
expect(testDnsly).to.be.instanceOf(smartdns.Smartdns);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
22
ts/index.ts
22
ts/index.ts
@ -1,6 +1,6 @@
|
|||||||
import * as plugins from './dnsly.plugins';
|
import * as plugins from './dnsly.plugins';
|
||||||
|
|
||||||
export type TDnsProvider = 'google';
|
export type TDnsProvider = 'google' | 'cloudflare';
|
||||||
export type TDnsRecordType =
|
export type TDnsRecordType =
|
||||||
| 'A'
|
| 'A'
|
||||||
| 'AAAA'
|
| 'AAAA'
|
||||||
@ -29,7 +29,7 @@ export class Smartdns {
|
|||||||
/**
|
/**
|
||||||
* constructor for class dnsly
|
* constructor for class dnsly
|
||||||
*/
|
*/
|
||||||
constructor(dnsProviderArg: TDnsProvider = 'google') {
|
constructor(dnsProviderArg: TDnsProvider = 'cloudflare') {
|
||||||
this._setDnsProvider(dnsProviderArg);
|
this._setDnsProvider(dnsProviderArg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -43,23 +43,25 @@ export class Smartdns {
|
|||||||
async checkUntilAvailable(
|
async checkUntilAvailable(
|
||||||
recordNameArg: string,
|
recordNameArg: string,
|
||||||
recordTypeArg: TDnsRecordType,
|
recordTypeArg: TDnsRecordType,
|
||||||
expectedValue: string
|
expectedValue: string,
|
||||||
|
cyclesArg: number = 50,
|
||||||
|
intervalArg: number = 500
|
||||||
) {
|
) {
|
||||||
let cycleArg = 0;
|
let runCycles = 0;
|
||||||
let doCheck = async () => {
|
let doCheck = async () => {
|
||||||
if (cycleArg < 30) {
|
if (runCycles < cyclesArg) {
|
||||||
cycleArg++;
|
runCycles++;
|
||||||
try {
|
try {
|
||||||
let myRecordArray = await this.getRecord(recordNameArg, recordTypeArg);
|
let myRecordArray = await this.getRecord(recordNameArg, recordTypeArg);
|
||||||
let myRecord = myRecordArray[0].value[0];
|
let myRecord = myRecordArray[0].value[0];
|
||||||
if (myRecord === expectedValue) {
|
if (myRecord === expectedValue) {
|
||||||
return true;
|
return true;
|
||||||
} else {
|
} else {
|
||||||
await plugins.smartdelay.delayFor(2000);
|
await plugins.smartdelay.delayFor(intervalArg);
|
||||||
return await doCheck();
|
return await doCheck();
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
await plugins.smartdelay.delayFor(2000);
|
await plugins.smartdelay.delayFor(intervalArg);
|
||||||
return await doCheck();
|
return await doCheck();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -152,6 +154,10 @@ export class Smartdns {
|
|||||||
this.dnsServerIp = '8.8.8.8';
|
this.dnsServerIp = '8.8.8.8';
|
||||||
this.dnsServerPort = 53;
|
this.dnsServerPort = 53;
|
||||||
plugins.dns.setServers(['8.8.8.8', '8.8.4.4']);
|
plugins.dns.setServers(['8.8.8.8', '8.8.4.4']);
|
||||||
|
} else if (dnsProvider === 'cloudflare') {
|
||||||
|
this.dnsServerIp = '1.1.1.1';
|
||||||
|
this.dnsServerPort = 53;
|
||||||
|
plugins.dns.setServers(['1.1.1.1', '1.0.0.1']);
|
||||||
} else {
|
} else {
|
||||||
throw new Error('unknown dns provider');
|
throw new Error('unknown dns provider');
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user