From c3930c814ac7e053fa8926e12efa618500e03456 Mon Sep 17 00:00:00 2001 From: Ibby Hadeed Date: Wed, 27 Sep 2017 16:52:06 -0400 Subject: [PATCH] refactor(google-maps): use es6 syntax --- .../plugins/google-maps/index.ts | 234 +++++++----------- 1 file changed, 94 insertions(+), 140 deletions(-) diff --git a/src/@ionic-native/plugins/google-maps/index.ts b/src/@ionic-native/plugins/google-maps/index.ts index 006f29b22..e1ec72735 100644 --- a/src/@ionic-native/plugins/google-maps/index.ts +++ b/src/@ionic-native/plugins/google-maps/index.ts @@ -649,27 +649,19 @@ export class BaseClass { * * @return {Observable} */ - @CordovaCheck({ observable: true }) + @InstanceCheck({ observable: true }) addEventListener(eventName: string): Observable { - if (!this._objectInstance) { - return new Observable((observer) => { - observer.error({ error: 'plugin_not_installed' }); - }); - } - return new Observable((observer) => { - var self = this; - this._objectInstance.on(eventName, function() { - var args = Array.prototype.slice.call(arguments, 0); - if (args[args.length - 1] instanceof GoogleMaps.getPlugin().BaseClass) { - if (args[args.length - 1].type === 'Map') { - args[args.length - 1] = self; - } else { - args[args.length - 1] = self._objectInstance.getMap().get(args[args.length - 1].getId()); - } + this._objectInstance.on(eventName, (...args: any[]) => { + if (args[args.length - 1] instanceof GoogleMaps.getPlugin().BaseClass) { + if (args[args.length - 1].type === 'Map') { + args[args.length - 1] = this; + } else { + args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId()); } - observer.next.call(observer, args); - }); + } + observer.next(args); + }); }); } @@ -678,23 +670,18 @@ export class BaseClass { * * @return {Promise} */ - @CordovaCheck() + @InstanceCheck() addListenerOnce(eventName: string): Promise { - if (!this._objectInstance) { - return Promise.reject({ error: 'plugin_not_installed' }); - } - var self = this; return new Promise((resolve) => { - this._objectInstance.one(eventName, function() { - var args = Array.prototype.slice.call(arguments, 0); - if (args[args.length - 1] instanceof GoogleMaps.getPlugin().BaseClass) { - if (args[args.length - 1].type === 'Map') { - args[args.length - 1] = self; - } else { - args[args.length - 1] = self._objectInstance.getMap().get(args[args.length - 1].getId()); - } + this._objectInstance.one(eventName, (...args: any[]) => { + if (args[args.length - 1] instanceof GoogleMaps.getPlugin().BaseClass) { + if (args[args.length - 1].type === 'Map') { + args[args.length - 1] = this; + } else { + args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId()); } - resolve.call(self, args); + } + resolve(args); }); }); } @@ -729,28 +716,20 @@ export class BaseClass { * * @return {Observable} */ - @CordovaCheck({ observable: true }) + @InstanceCheck({ observable: true }) on(eventName: string): Observable { - if (!this._objectInstance) { - return new Observable((observer) => { - observer.error({ error: 'plugin_not_installed' }); - }); - } - - return new Observable((observer) => { - var self = this; - this._objectInstance.on(eventName, function() { - var args = Array.prototype.slice.call(arguments, 0); - if (args[args.length - 1] instanceof GoogleMaps.getPlugin().BaseClass) { - if (args[args.length - 1].type === 'Map') { - args[args.length - 1] = self; - } else { - args[args.length - 1] = self._objectInstance.getMap().get(args[args.length - 1].getId()); - } + return new Observable((observer) => { + this._objectInstance.on(eventName, (...args: any[]) => { + if (args[args.length - 1] instanceof GoogleMaps.getPlugin().BaseClass) { + if (args[args.length - 1].type === 'Map') { + args[args.length - 1] = this; + } else { + args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId()); } - observer.next.call(observer, args); - }); - }); + } + observer.next(args); + }); + }); } /** @@ -758,23 +737,18 @@ export class BaseClass { * * @return {Promise} */ - @CordovaCheck() + @InstanceCheck() one(eventName: string): Promise { - if (!this._objectInstance) { - return Promise.reject({ error: 'plugin_not_installed' }); - } - var self = this; return new Promise((resolve) => { - this._objectInstance.one(eventName, function() { - var args = Array.prototype.slice.call(arguments, 0); - if (args[args.length - 1] instanceof GoogleMaps.getPlugin().BaseClass) { - if (args[args.length - 1].type === 'Map') { - args[args.length - 1] = self; - } else { - args[args.length - 1] = self._objectInstance.getMap().get(args[args.length - 1].getId()); - } + this._objectInstance.one(eventName, (...args: any[]) => { + if (args[args.length - 1] instanceof GoogleMaps.getPlugin().BaseClass) { + if (args[args.length - 1].type === 'Map') { + args[args.length - 1] = this; + } else { + args[args.length - 1] = this._objectInstance.getMap().get(args[args.length - 1].getId()); } - resolve.call(self, args); + } + resolve(args); }); }); } @@ -1115,11 +1089,8 @@ export class Environment { * @return {Promise} */ getLicenseInfo(): Promise { - var self = this; - return new Promise((resolve, reject) => { - GoogleMaps.getPlugin().environment.getLicenseInfo((text: string) => { - resolve.call(self, text); - }); + return new Promise((resolve) => { + GoogleMaps.getPlugin().environment.getLicenseInfo((text: string) => resolve(text)); }); } @@ -1151,7 +1122,7 @@ export class Geocoder { geocode(request: GeocoderRequest): Promise> { if (request.address instanceof Array || Array.isArray(request.address) || - request.position instanceof Array || Array.isArray(request.position)) { + request.position instanceof Array || Array.isArray(request.position)) { // ------------------------- // Geocoder.geocode({ // address: [ @@ -1486,16 +1457,11 @@ export class GoogleMap extends BaseClass { */ @CordovaInstance() remove(): Promise { - let self: GoogleMap = this; - self.get('_overlays').forEach((overlayId: string) => { - self.set(overlayId, null); - }); - self.get('_overlays').empty(); - self.set('_overlays', undefined); - return new Promise((resolve, reject) => { - self._objectInstance.remove(() => { - resolve(); - }); + this.get('_overlays').forEach((overlayId: string) => this.set(overlayId, null)); + this.get('_overlays').empty(); + this.set('_overlays', undefined); + return new Promise((resolve) => { + this._objectInstance.remove(() => resolve()); }); } @@ -1503,17 +1469,12 @@ export class GoogleMap extends BaseClass { * Remove all overlays, such as marker * @return {Promise} */ - @CordovaCheck() + @InstanceCheck() clear(): Promise { - let self: GoogleMap = this; - self.get('_overlays').forEach((overlayId: string) => { - self.set(overlayId, null); - }); - self.get('_overlays').empty(); - return new Promise((resolve, reject) => { - self._objectInstance.clear(() => { - resolve(); - }); + this.get('_overlays').forEach((overlayId: string) => this.set(overlayId, null)); + this.get('_overlays').empty(); + return new Promise((resolve) => { + this._objectInstance.clear(() => resolve()); }); } @@ -1603,13 +1564,12 @@ export class GoogleMap extends BaseClass { */ @InstanceCheck() addMarker(options: MarkerOptions): Promise { - let self: GoogleMap = this; return new Promise((resolve, reject) => { - self._objectInstance.addMarker(options, (marker: any) => { + this._objectInstance.addMarker(options, (marker: any) => { if (marker) { - let overlay: Marker = new Marker(self, marker); - self.get('_overlays').push(marker.getId()); - self.set(marker.getId(), overlay); + const overlay: Marker = new Marker(this, marker); + this.get('_overlays').push(marker.getId()); + this.set(marker.getId(), overlay); resolve(overlay); } else { reject(); @@ -1620,13 +1580,12 @@ export class GoogleMap extends BaseClass { @InstanceCheck() addMarkerCluster(options: MarkerClusterOptions): Promise { - let self: GoogleMap = this; return new Promise((resolve, reject) => { - self._objectInstance.addMarkerCluster(options, (markerCluster: any) => { + this._objectInstance.addMarkerCluster(options, (markerCluster: any) => { if (markerCluster) { - let overlay = new MarkerCluster(self, markerCluster); - self.get('_overlays').push(markerCluster.getId()); - self.set(markerCluster.getId(), overlay); + const overlay = new MarkerCluster(this, markerCluster); + this.get('_overlays').push(markerCluster.getId()); + this.set(markerCluster.getId(), overlay); resolve(overlay); } else { reject(); @@ -1641,13 +1600,12 @@ export class GoogleMap extends BaseClass { */ @InstanceCheck() addCircle(options: CircleOptions): Promise { - let self: GoogleMap = this; return new Promise((resolve, reject) => { - self._objectInstance.addCircle(options, (circle: any) => { + this._objectInstance.addCircle(options, (circle: any) => { if (circle) { - let overlay = new Circle(self, circle); - self.get('_overlays').push(circle.getId()); - self.set(circle.getId(), overlay); + const overlay = new Circle(this, circle); + this.get('_overlays').push(circle.getId()); + this.set(circle.getId(), overlay); resolve(overlay); } else { reject(); @@ -1662,13 +1620,12 @@ export class GoogleMap extends BaseClass { */ @InstanceCheck() addPolygon(options: PolygonOptions): Promise { - let self: GoogleMap = this; return new Promise((resolve, reject) => { - self._objectInstance.addPolygon(options, (polygon: any) => { + this._objectInstance.addPolygon(options, (polygon: any) => { if (polygon) { - let overlay = new Polygon(self, polygon); - self.get('_overlays').push(polygon.getId()); - self.set(polygon.getId(), overlay); + const overlay = new Polygon(this, polygon); + this.get('_overlays').push(polygon.getId()); + this.set(polygon.getId(), overlay); resolve(polygon); } else { reject(); @@ -1683,13 +1640,12 @@ export class GoogleMap extends BaseClass { */ @InstanceCheck() addPolyline(options: PolylineOptions): Promise { - let self: GoogleMap = this; return new Promise((resolve, reject) => { - self._objectInstance.addPolyline(options, (polyline: any) => { + this._objectInstance.addPolyline(options, (polyline: any) => { if (polyline) { - let overlay = new Polyline(self, polyline); - self.get('_overlays').push(polyline.getId()); - self.set(polyline.getId(), overlay); + const overlay = new Polyline(this, polyline); + this.get('_overlays').push(polyline.getId()); + this.set(polyline.getId(), overlay); resolve(overlay); } else { reject(); @@ -1703,13 +1659,12 @@ export class GoogleMap extends BaseClass { */ @InstanceCheck() addTileOverlay(options: TileOverlayOptions): Promise { - let self: GoogleMap = this; return new Promise((resolve, reject) => { - self._objectInstance.addTileOverlay(options, (tileOverlay: any) => { + this._objectInstance.addTileOverlay(options, (tileOverlay: any) => { if (tileOverlay) { - let overlay = new TileOverlay(self, tileOverlay); - self.get('_overlays').push(tileOverlay.getId()); - self.set(tileOverlay.getId(), overlay); + const overlay = new TileOverlay(this, tileOverlay); + this.get('_overlays').push(tileOverlay.getId()); + this.set(tileOverlay.getId(), overlay); resolve(overlay); } else { reject(); @@ -1723,13 +1678,12 @@ export class GoogleMap extends BaseClass { */ @InstanceCheck() addGroundOverlay(options: GroundOverlayOptions): Promise { - let self: GoogleMap = this; return new Promise((resolve, reject) => { - self._objectInstance.addGroundOverlay(options, (groundOverlay: any) => { + this._objectInstance.addGroundOverlay(options, (groundOverlay: any) => { if (groundOverlay) { - let overlay = new GroundOverlay(self, groundOverlay); - self.get('_overlays').push(groundOverlay.getId()); - self.set(groundOverlay.getId(), overlay); + const overlay = new GroundOverlay(this, groundOverlay); + this.get('_overlays').push(groundOverlay.getId()); + this.set(groundOverlay.getId(), overlay); resolve(overlay); } else { reject(); @@ -1892,23 +1846,23 @@ export class GroundOverlay extends BaseClass { * @hidden */ @Plugin({ - plugin: 'cordova-plugin-googlemaps', - pluginName: 'GoogleMaps', - pluginRef: 'plugin.google.maps.HtmlInfoWindow', - repo: '' + plugin: 'cordova-plugin-googlemaps', + pluginName: 'GoogleMaps', + pluginRef: 'plugin.google.maps.HtmlInfoWindow', + repo: '' }) export class HtmlInfoWindow extends IonicNativePlugin { private _objectInstance: any; constructor(initialData?: any) { - super(); - if (checkAvailability(HtmlInfoWindow.getPluginRef(), null, HtmlInfoWindow.getPluginName()) === true) { + super(); + if (checkAvailability(HtmlInfoWindow.getPluginRef(), null, HtmlInfoWindow.getPluginName()) === true) { if (initialData instanceof GoogleMaps.getPlugin().HtmlInfoWindow) { this._objectInstance = initialData; } else { this._objectInstance = new (HtmlInfoWindow.getPlugin())(); } - } + } } /** @@ -2185,11 +2139,11 @@ export class MarkerCluster extends BaseClass { @CordovaInstance({ sync: true }) addMarkers(markers: MarkerOptions[]): void {} - @CordovaCheck() + @InstanceCheck() remove(): void { - this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); - this._objectInstance.remove(); - this.destroy(); + this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); + this._objectInstance.remove(); + this.destroy(); } /** @@ -2328,7 +2282,7 @@ export class Polygon extends BaseClass { /** * Remove the polygon. */ - @CordovaCheck() + @InstanceCheck() remove(): void { this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); this._objectInstance.remove(); @@ -2489,7 +2443,7 @@ export class Polyline extends BaseClass { /** * Remove the polyline */ - @CordovaCheck() + @InstanceCheck() remove(): void { this._objectInstance.getMap().get('_overlays').set(this.getId(), undefined); this._objectInstance.remove();