UNPKG

universal-geocoder

Version:

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

91 lines (74 loc) 2.06 kB
import Geocoded, { GeocodedObject } from "Geocoded"; export interface MapQuestGeocodedObject extends GeocodedObject { readonly precision?: string; readonly precisionCode?: string; readonly mapUrl?: string; readonly attribution?: string; } export default class MapQuestGeocoded extends Geocoded { private readonly precision?: string; private readonly precisionCode?: string; private readonly mapUrl?: string; private readonly attribution?: string; protected constructor({ precision, precisionCode, mapUrl, attribution, ...geocodedObject }: MapQuestGeocodedObject) { super(geocodedObject); this.precision = precision; this.precisionCode = precisionCode; this.mapUrl = mapUrl; this.attribution = attribution; } public static create(object: MapQuestGeocodedObject): MapQuestGeocoded { return new this(object); } public toObject(): MapQuestGeocodedObject { return { ...super.toObject(), precision: this.precision, precisionCode: this.precisionCode, mapUrl: this.mapUrl, attribution: this.attribution, }; } public withPrecision(precision: string): MapQuestGeocoded { return new MapQuestGeocoded({ ...this.toObject(), precision, }); } public getPrecision(): undefined | string { return this.precision; } public withPrecisionCode(precisionCode: string): MapQuestGeocoded { return new MapQuestGeocoded({ ...this.toObject(), precisionCode, }); } public getPrecisionCode(): undefined | string { return this.precisionCode; } public withMapUrl(mapUrl: string): MapQuestGeocoded { return new MapQuestGeocoded({ ...this.toObject(), mapUrl, }); } public getMapUrl(): undefined | string { return this.mapUrl; } public withAttribution(attribution: string): MapQuestGeocoded { return new MapQuestGeocoded({ ...this.toObject(), attribution, }); } public getAttribution(): undefined | string { return this.attribution; } }