UNPKG

universal-geocoder

Version:

Universal geocoding abstraction server-side and client-side with multiple built-in providers

79 lines 4.12 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __rest = (this && this.__rest) || function (s, e) { var t = {}; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p]; if (s != null && typeof Object.getOwnPropertySymbols === "function") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) { if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]]; } return t; }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var provider_1 = require("./provider"); var ExternalLoader_1 = __importDefault(require("./ExternalLoader")); var ProviderFactory = /** @class */ (function () { function ProviderFactory() { } /** * Creates Geocoder Provider instances. * @param options * Either a string representing the registered provider, or an object with the * following settings for instigating providers: * - provider: A string representing the registered provider. * @return * An object compatible with ProviderInterface, or undefined if there's not a * registered provider. */ ProviderFactory.createProvider = function (options) { var createProviderOptions = __assign(__assign({}, provider_1.defaultProviderOptions), (typeof options === "string" ? { provider: options } : options)); var externalLoader = new ExternalLoader_1.default(); var provider = createProviderOptions.provider, providerOptions = __rest(createProviderOptions, ["provider"]); switch (provider) { case "bing": case "bingmaps": case "microsoft": return new provider_1.BingProvider(externalLoader, __assign(__assign({}, provider_1.defaultBingProviderOptions), providerOptions)); case "chain": return new provider_1.ChainProvider(__assign(__assign({}, provider_1.defaultChainProviderOptions), providerOptions)); case "geoplugin": return new provider_1.GeoPluginProvider(externalLoader, providerOptions); case "google": case "googlemaps": return new provider_1.GoogleMapsProvider(externalLoader, providerOptions); case "locationiq": return new provider_1.LocationIQProvider(externalLoader, __assign(__assign({}, provider_1.defaultLocationIQProviderOptions), providerOptions)); case "mapbox": return new provider_1.MapboxProvider(externalLoader, __assign(__assign({}, provider_1.defaultMapboxProviderOptions), providerOptions)); case "mapquest": return new provider_1.MapQuestProvider(externalLoader, __assign(__assign({}, provider_1.defaultMapQuestProviderOptions), providerOptions)); case "openstreetmap": case "nominatim": return new provider_1.NominatimProvider(externalLoader, __assign(__assign({}, provider_1.defaultNominatimProviderOptions), providerOptions)); case "opencage": return new provider_1.OpenCageProvider(externalLoader, __assign(__assign({}, provider_1.defaultOpenCageProviderOptions), providerOptions)); case "yandex": return new provider_1.YandexProvider(externalLoader, __assign(__assign({}, provider_1.defaultYandexProviderOptions), providerOptions)); default: } return undefined; }; return ProviderFactory; }()); exports.default = ProviderFactory; //# sourceMappingURL=GeocoderProviderFactory.js.map