Skip to content

Commit e9e90a1

Browse files
committedMay 14, 2024
refactor: Use nominatim module
Signed-off-by: Tim Hårek Andreassen <[email protected]>
1 parent 12a4aef commit e9e90a1

File tree

6 files changed

+21
-98
lines changed

6 files changed

+21
-98
lines changed
 

‎deno.lock

+5-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎deps.ts

+4
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
11
export { format } from 'jsr:@std/datetime@^0.218.2';
22
export * as Colors from 'jsr:@std/fmt@^0.218.2/colors';
33
export { Command, CompletionsCommand } from 'jsr:@cliffy/command@1.0.0-rc.4';
4+
export {
5+
coordinatesFromLocationName,
6+
locationFromCoordinates,
7+
} from 'jsr:@timharek/nominatim@1.0.0';

‎mod.ts

+1-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/**
2-
* Access Yr's weather API and Nominatim's names API for getting weather details
3-
* about a specific location.
2+
* Access Yr's weather API for getting weather forecast about a specific location.
43
*
54
* ## Example for current weather
65
*
@@ -25,6 +24,5 @@
2524
* @module
2625
*/
2726

28-
export { Nominatim } from './src/nominatim.ts';
2927
export { Yr } from './src/yr.ts';
3028
export { getCurrent, getForecast } from './src/util.ts';

‎src/nominatim.ts

-84
This file was deleted.

‎src/util.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { Nominatim } from './nominatim.ts';
1+
import { coordinatesFromLocationName } from '../deps.ts';
22
import { Forecast, TimeseriesMinified, Yr } from './yr.ts';
33

44
/**
@@ -32,7 +32,7 @@ export async function _fetch<T>(url: string | URL): Promise<T> {
3232
export async function getCurrent(
3333
locationName: string,
3434
): Promise<TimeseriesMinified> {
35-
const { lat, lng } = await Nominatim.getCoordinatesFromName(locationName);
35+
const { lat, lng } = await coordinatesFromLocationName(locationName);
3636
const url = Yr.getUrl(lat, lng);
3737

3838
const yrResponse = await _fetch<Yr.IWeather>(url);
@@ -52,7 +52,7 @@ export async function getForecast(
5252
locationName: string,
5353
interval = 1,
5454
): Promise<Forecast> {
55-
const { lat, lng } = await Nominatim.getCoordinatesFromName(locationName);
55+
const { lat, lng } = await coordinatesFromLocationName(locationName);
5656
const url = Yr.getUrl(lat, lng);
5757

5858
const yrResponse = await _fetch<Yr.IWeather>(url);
@@ -70,7 +70,7 @@ export async function getForecast(
7070
export async function getTomorrow(
7171
locationName: string,
7272
): Promise<Forecast> {
73-
const { lat, lng } = await Nominatim.getCoordinatesFromName(locationName);
73+
const { lat, lng } = await coordinatesFromLocationName(locationName);
7474
const url = Yr.getUrl(lat, lng);
7575

7676
const yrResponse: Yr.IWeather = await _fetch(url);

‎src/yr.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
import { format as formatDate } from '../deps.ts';
2-
import { Nominatim } from './nominatim.ts';
1+
import { format as formatDate, locationFromCoordinates } from '../deps.ts';
32
import { cleanForecast, getEarliestTimeseries, getUrl } from './util.ts';
43

54
export interface TimeseriesMinified {
@@ -26,10 +25,11 @@ async function getCurrent(
2625
weatherData,
2726
);
2827
const earliestTimeseries: Yr.ITimeseries = getEarliestTimeseries(timeseries);
29-
const location_name = await Nominatim.getNameFromCoordinates(coordinates);
28+
const location = await locationFromCoordinates(coordinates);
29+
const locationName = location?.city ?? location?.village;
3030

3131
return {
32-
location_name,
32+
location_name: locationName,
3333
...getSimpleTimeseries(earliestTimeseries, units),
3434
} as TimeseriesMinified;
3535
}
@@ -77,7 +77,8 @@ async function getForecast(
7777
weatherData,
7878
);
7979
const { time: closestTime } = getEarliestTimeseries(timeseries);
80-
const location_name = await Nominatim.getNameFromCoordinates(coordinates);
80+
const location = await locationFromCoordinates(coordinates);
81+
const locationName = location?.city ?? location?.village;
8182

8283
const resultArray = weatherData.properties.timeseries.map((entry) => {
8384
const { data: { next_1_hours: nextHour }, time } = entry;
@@ -91,7 +92,7 @@ async function getForecast(
9192
: cleanForecast(resultArray);
9293

9394
return {
94-
location_name,
95+
location_name: locationName ?? '',
9596
array,
9697
};
9798
}

0 commit comments

Comments
 (0)
Please sign in to comment.