@goparrot/geocoder
Version:
TypeScript GeoCoder, node geocoding library, supports google maps, mapquest, here, open street map, tom tom
56 lines • 1.66 kB
JavaScript
import { ValidationException } from '../exception';
import { AbstractChainProvider } from '../model';
export class ChainProvider extends AbstractChainProvider {
constructor(providers) {
super(providers);
}
async geocode(query) {
for (const provider of this.getProviders()) {
try {
const locations = await provider.geocode(query);
if (locations.length) {
return locations;
}
}
catch (err) {
if (err instanceof ValidationException) {
throw err;
}
this.getLogger().warn(err);
}
}
return [];
}
async reverse(query) {
for (const provider of this.getProviders()) {
try {
const locations = await provider.reverse(query);
if (locations.length) {
return locations;
}
}
catch (err) {
if (err instanceof ValidationException) {
throw err;
}
this.getLogger().warn(err);
}
}
return [];
}
async suggest(query) {
for (const provider of this.getProviders()) {
try {
return await provider.suggest(query);
}
catch (err) {
if (err instanceof ValidationException) {
throw err;
}
this.getLogger().warn(err);
}
}
return [];
}
}
//# sourceMappingURL=chain.provider.js.map