Files
aris/packages/aris-source-weatherkit/src/feed-items.ts
Kenneth 8ca8a0d1d2 fix: use PascalCase for FeedItemType members (#51)
Rename camelCase members to PascalCase in WeatherFeedItemType
and CalendarFeedItemType to match TflFeedItemType and
CalDavFeedItemType conventions.

Co-authored-by: Ona <no-reply@ona.com>
2026-03-01 22:10:34 +00:00

98 lines
2.2 KiB
TypeScript

import type { FeedItem } from "@aris/core"
import type { Certainty, ConditionCode, PrecipitationType, Severity, Urgency } from "./weatherkit"
export const WeatherFeedItemType = {
Current: "weather-current",
Hourly: "weather-hourly",
Daily: "weather-daily",
Alert: "weather-alert",
} as const
export type WeatherFeedItemType = (typeof WeatherFeedItemType)[keyof typeof WeatherFeedItemType]
export type CurrentWeatherData = {
conditionCode: ConditionCode
daylight: boolean
humidity: number
precipitationIntensity: number
pressure: number
pressureTrend: "rising" | "falling" | "steady"
temperature: number
temperatureApparent: number
uvIndex: number
visibility: number
windDirection: number
windGust: number
windSpeed: number
}
export interface CurrentWeatherFeedItem extends FeedItem<
typeof WeatherFeedItemType.Current,
CurrentWeatherData
> {}
export type HourlyWeatherData = {
forecastTime: Date
conditionCode: ConditionCode
daylight: boolean
humidity: number
precipitationAmount: number
precipitationChance: number
precipitationType: PrecipitationType
temperature: number
temperatureApparent: number
uvIndex: number
windDirection: number
windGust: number
windSpeed: number
}
export interface HourlyWeatherFeedItem extends FeedItem<
typeof WeatherFeedItemType.Hourly,
HourlyWeatherData
> {}
export type DailyWeatherData = {
forecastDate: Date
conditionCode: ConditionCode
maxUvIndex: number
precipitationAmount: number
precipitationChance: number
precipitationType: PrecipitationType
snowfallAmount: number
sunrise: Date
sunset: Date
temperatureMax: number
temperatureMin: number
}
export interface DailyWeatherFeedItem extends FeedItem<
typeof WeatherFeedItemType.Daily,
DailyWeatherData
> {}
export type WeatherAlertData = {
alertId: string
areaName: string
certainty: Certainty
description: string
detailsUrl: string
effectiveTime: Date
expireTime: Date
severity: Severity
source: string
urgency: Urgency
}
export interface WeatherAlertFeedItem extends FeedItem<
typeof WeatherFeedItemType.Alert,
WeatherAlertData
> {}
export type WeatherFeedItem =
| CurrentWeatherFeedItem
| HourlyWeatherFeedItem
| DailyWeatherFeedItem
| WeatherAlertFeedItem