turkey-weather
Version:
The 'TurkeyWeather' npm module is a tool for accessing real-time weather data and weather forecast from the Turkish State Meteorological Service (MGM) website.
380 lines (346 loc) • 8.02 kB
text/typescript
export interface CenterResponse {
alternatifHadiseIstNo: any
boylam: number
enlem: number
gunlukTahminIstNo: number
il: string
ilPlaka: number
ilce: string
merkezId: number
oncelik: number
saatlikTahminIstNo: number
sondurumIstNo: number
yukseklik: number
aciklama: string
modelId: number
gps: number
}
export interface LatestEventsResponse {
aktuelBasinc: number
denizSicaklik: number
denizeIndirgenmisBasinc: number
gorus: number
hadiseKodu: string
istNo: number
kapalilik: number
karYukseklik: number
nem: number
rasatMetar: string
rasatSinoptik: string
rasatTaf: string
ruzgarHiz: number
ruzgarYon: number
sicaklik: number
veriZamani: string
yagis00Now: number
yagis10Dk: number
yagis12Saat: number
yagis1Saat: number
yagis24Saat: number
yagis6Saat: number
denizVeriZamani: string
}
export interface DailyWeatherResponse {
enDusukGun1: number
enDusukGun2: number
enDusukGun3: number
enDusukGun4: number
enDusukGun5: number
enDusukNemGun1: number
enDusukNemGun2: number
enDusukNemGun3: number
enDusukNemGun4: number
enDusukNemGun5: number
enYuksekGun1: number
enYuksekGun2: number
enYuksekGun3: number
enYuksekGun4: number
enYuksekGun5: number
enYuksekNemGun1: number
enYuksekNemGun2: number
enYuksekNemGun3: number
enYuksekNemGun4: number
enYuksekNemGun5: number
hadiseGun1: string
hadiseGun2: string
hadiseGun3: string
hadiseGun4: string
hadiseGun5: string
istNo: number
ruzgarHizGun1: number
ruzgarHizGun2: number
ruzgarHizGun3: number
ruzgarHizGun4: number
ruzgarHizGun5: number
ruzgarYonGun1: number
ruzgarYonGun2: number
ruzgarYonGun3: number
ruzgarYonGun4: number
ruzgarYonGun5: number
tarihGun1: string
tarihGun2: string
tarihGun3: string
tarihGun4: string
tarihGun5: string
}
export interface HourlyWeatherResponse {
baslangicZamani: string
istNo: number
merkez: string
tahmin: Tahmin[]
}
interface Tahmin {
tarih: string
hadise: string
sicaklik: number
hissedilenSicaklik: number
nem: number
ruzgarYonu: number
ruzgarHizi: number
maksimumRuzgarHizi: number
}
//Converted types
export type CentersResponse = CastedCenterInfo[]
/**
* Represents a casted daily weather forecast with detailed information.
*
* @interface
*/
export interface CastedDailyForecast {
/**
* The date of the weather forecast.
*
* @type {string}
*/
date: string;
/**
* The weather event description.
*
* @type {string}
*/
event: string;
/**
* Temperature information, including the lowest and highest temperatures.
*
* @type {{ lowest: number; highest: number }}
*/
temp: {
lowest: number;
highest: number;
};
/**
* Humidity information, including the lowest and highest humidity levels.
*
* @type {{ lowest: number; highest: number }}
*/
humidity: {
lowest: number;
highest: number;
};
/**
* Wind information, including speed and direction.
*
* @type {{
* speed: number;
* direction: number;
* }}
*/
wind: {
speed: number;
direction: number;
};
}
/**
* Represents a casted hourly weather forecast with detailed information.
*
* @interface
*/
export interface CastedHourlyForecast {
/**
* The date and time of the weather forecast.
*
* @type {string}
*/
date: string;
/**
* The weather event description.
*
* @type {string}
*/
event: string;
/**
* The temperature for the forecasted hour.
*
* @type {number}
*/
temp: number;
/**
* The apparent temperature (what it feels like) for the forecasted hour.
*
* @type {number}
*/
apparentTemp: number;
/**
* The humidity level for the forecasted hour.
*
* @type {number}
*/
humidity: number;
/**
* Wind information, including speed, maximum speed, and direction.
*
* @type {{
* speed: number;
* maxSpeed: number;
* direction: number;
* }}
*/
wind: {
speed: number;
maxSpeed: number;
direction: number;
};
}
/**
* Represents the response data for the latest weather events with casted types.
*
* @interface
*/
export interface CastedLatestEvents {
/**
* The temperature at the time of the latest events.
*
* @type {number}
*/
temp: number;
/**
* The date and time when the weather data was recorded.
*
* @type {string}
*/
dataDate: string;
/**
* The event code representing the weather conditions.
*
* @type {string}
*/
eventCode: string;
/**
* The humidity level at the time of the latest events.
*
* @type {number}
*/
humidity: number;
/**
* The atmospheric pressure (if available) at the time of the latest events.
*
* @type {number | undefined}
*/
pressure: number | undefined;
/**
* Precipitation information, including precipitation amounts at different time intervals.
*
* @type {{
* now: number;
* after10Minutes: number;
* after1Hour: number;
* after6Hour: number;
* after12Hour: number;
* after24Hour: number;
* }}
*/
precipitation: {
now: number;
after10Minutes: number;
after1Hour: number;
after6Hour: number;
after12Hour: number;
after24Hour: number;
};
/**
* Wind information, including speed and direction.
*
* @type {{
* speed: number;
* direction: number;
* }}
*/
wind: {
speed: number;
direction: number;
};
}
/**
* Represents detailed information about a weather center, including its location and identifiers.
*
* @interface
*/
export interface CastedCenterInfo {
/**
* The unique identifier of the province where the weather center is located.
*
* @type {number}
*/
provinceID: number;
/**
* The name of the weather center.
*
* @type {string}
*/
name: string;
/**
* The name of the province where the weather center is located.
*
* @type {string}
*/
province: string;
/**
* The latitude coordinate of the weather center's location.
*
* @type {number}
*/
lat: number;
/**
* The longitude coordinate of the weather center's location.
*
* @type {number}
*/
long: number;
/**
* The altitude (elevation) of the weather center's location.
*
* @type {number}
*/
altitude: number;
/**
* The unique identifier of the weather center.
*
* @type {number}
*/
centerID: number;
/**
* The unique identifier for hourly forecasts associated with the weather center.
*
* @type {number}
*/
hourlyID: number;
}
/**
* Represents information about a district within a province, including its name and identifier.
*
* @interface
*/
export interface District {
/**
* The name of the district.
*
* @type {string}
*/
name: string;
/**
* The unique identifier of the district.
*
* @type {number}
*/
centerID: number;
}