Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | 25x 25x 10x 20x 25x 25x 25x | import getGoogleAutocompleteScriptLoader from './getGoogleAutocompleteScriptLoader'; import GoogleAutocompleteScriptLoader from './GoogleAutocompleteScriptLoader'; export default class GoogleAutocompleteService { private _autocompletePromise?: Promise<google.maps.places.AutocompleteService>; private _placesPromise?: Promise<google.maps.places.PlacesService>; constructor( private _apiKey: string, private E_scriptLoader: GoogleAutocompleteScriptLoader = getGoogleAutocompleteScriptLoader() ) {} getAutocompleteService(): Promise<google.maps.places.AutocompleteService> { if (!this._autocompletePromise) { this._autocompletePromise = this._scriptLoader.loadMapsSdk(this._apiKey) .then(googleMapsSdk => { if (!googleMapsSdk.places.AutocompleteService) { throw new Error('`AutocompleteService` is undefined'); } return new googleMapsSdk.places.AutocompleteService(); }); } return this._autocompletePromise; } getPlacesServices(): Promise<google.maps.places.PlacesService> { const node = document.createElement('div'); if (!this._placesPromise) { this._placesPromise = this._scriptLoader.loadMapsSdk(this._apiKey) .then(googleMapsSdk => { if (!googleMapsSdk.places.PlacesService) { throw new Error('`PlacesService` is undefined'); } return new googleMapsSdk.places.PlacesService(node); }); } return this._placesPromise; } } |