Compare commits

...

2 Commits

Author SHA1 Message Date
Derrick Hammer 1551e0aa75
*Update dist 2023-02-19 18:03:47 -05:00
Derrick Hammer 1e62962a1d
*Refactor isTldSupported to support promises 2023-02-19 18:03:32 -05:00
4 changed files with 24 additions and 11 deletions

View File

@ -18,7 +18,7 @@ export interface ResolverModule extends ResolverModuleConstructor {
options: ResolverOptions,
bypassCache: boolean
): Promise<DNSResult>;
getSupportedTlds(): string[];
getSupportedTlds(): string[] | Promise<string[]>;
}
export declare abstract class AbstractResolverModule {
protected resolver: ResolverRegistry;
@ -28,8 +28,8 @@ export declare abstract class AbstractResolverModule {
options: ResolverOptions,
bypassCache: boolean
): Promise<DNSResult>;
getSupportedTlds(): string[];
isTldSupported(domain: string): boolean;
getSupportedTlds(): string[] | Promise<string[]>;
isTldSupported(domain: string): boolean | Promise<boolean>;
}
export {};
//# sourceMappingURL=resolverModule.d.ts.map

View File

@ -1 +1 @@
{"version":3,"file":"resolverModule.d.ts","sourceRoot":"","sources":["../src/resolverModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7D,OAAO,OAAO,gBAAgB;IAC5B,IAAI,SAAS,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACpE,OAAO,CACL,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,EACzB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,SAAS,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IACxC,KAAK,IAAI,IAAI;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,QAAQ,EAAE,gBAAgB,OAAE;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,yBAAyB;IAC/D,OAAO,CACL,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,gBAAgB,IAAI,MAAM,EAAE,CAAC;CAC9B;AAGD,8BAAsB,sBAAsB;IAC1C,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC;gBAEzB,QAAQ,EAAE,gBAAgB;IAItC,QAAQ,CAAC,OAAO,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,SAAS,CAAC;IAErB,gBAAgB,IAAI,MAAM,EAAE;IAI5B,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;CAGxC"}
{"version":3,"file":"resolverModule.d.ts","sourceRoot":"","sources":["../src/resolverModule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG7D,OAAO,OAAO,gBAAgB;IAC5B,IAAI,SAAS,IAAI,GAAG,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IACpE,OAAO,CACL,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,eAAe,EACzB,WAAW,CAAC,EAAE,OAAO,GACpB,OAAO,CAAC,SAAS,CAAC;IACrB,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IACxC,KAAK,IAAI,IAAI;CACd;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,QAAQ,EAAE,gBAAgB,OAAE;CAClC;AAED,MAAM,WAAW,cAAe,SAAQ,yBAAyB;IAC/D,OAAO,CACL,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,SAAS,CAAC,CAAC;IAEtB,gBAAgB,IAAI,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;CAClD;AAGD,8BAAsB,sBAAsB;IAC1C,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAC;gBAEzB,QAAQ,EAAE,gBAAgB;IAItC,QAAQ,CAAC,OAAO,CACd,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,eAAe,EACxB,WAAW,EAAE,OAAO,GACnB,OAAO,CAAC,SAAS,CAAC;IAErB,gBAAgB,IAAI,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAIhD,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAU3D"}

View File

@ -1,4 +1,4 @@
import { getTld } from "./util.js";
import { getTld, isPromise } from "./util.js";
// ts-ignore
export class AbstractResolverModule {
resolver;
@ -9,6 +9,12 @@ export class AbstractResolverModule {
return [];
}
isTldSupported(domain) {
return this.getSupportedTlds().includes(getTld(domain));
let supported = this.getSupportedTlds();
if (isPromise(supported)) {
return supported.then((supported) => {
return supported.includes(getTld(domain));
});
}
return supported.includes(getTld(domain));
}
}

View File

@ -1,5 +1,5 @@
import type { DNSResult, ResolverOptions } from "./types.js";
import { getTld } from "./util.js";
import { getTld, isPromise } from "./util.js";
declare class ResolverRegistry {
get resolvers(): Set<ResolverModule> | Promise<Set<ResolverModule>>;
@ -23,7 +23,7 @@ export interface ResolverModule extends ResolverModuleConstructor {
bypassCache: boolean
): Promise<DNSResult>;
getSupportedTlds(): string[];
getSupportedTlds(): string[] | Promise<string[]>;
}
// ts-ignore
@ -40,11 +40,18 @@ export abstract class AbstractResolverModule {
bypassCache: boolean
): Promise<DNSResult>;
getSupportedTlds(): string[] {
getSupportedTlds(): string[] | Promise<string[]> {
return [];
}
isTldSupported(domain: string): boolean {
return this.getSupportedTlds().includes(getTld(domain));
isTldSupported(domain: string): boolean | Promise<boolean> {
let supported = this.getSupportedTlds();
if (isPromise(supported as Promise<string[]>)) {
return (supported as Promise<string[]>).then((supported: string[]) => {
return supported.includes(getTld(domain));
});
}
return (supported as string[]).includes(getTld(domain));
}
}