snow-forecast-sfr
Version:
An NPM module that scrapes snow-forecast for the relevant resort and returns its information.
85 lines (84 loc) • 2.78 kB
TypeScript
export declare type TElevation = 'bot' | 'mid' | 'top';
export declare type TDay = 'Sunday' | 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday';
export declare type TTimePeriods = 'AM' | 'PM' | 'night';
export declare type TUnits = 'metric' | 'imperial';
export declare type TWindDirection = '';
export declare type TIssuedDate = string;
export declare type TUrl = string;
export declare type TResortName = string;
export declare type TSnowRequestError = string;
export declare type TSnowRequestMessage = string;
export interface ISnowRequest {
parseResort: (resort: TResortName, elevation: TElevation, cb: any, opts?: IParseOptions) => IRequestError | IForecast | undefined;
}
export interface IParseOptions {
inMetric?: boolean;
proxyOpts?: object;
proxyUrl?: string;
}
export interface IRequestError {
url: TUrl;
error: TSnowRequestError;
message: TSnowRequestMessage;
}
export interface IForecastRequest {
resort: TResortName;
url: TUrl;
elevation: TElevation;
issuedDate: TIssuedDate;
lastUpdateDate: string;
startDay: TDay;
isMetric: boolean;
}
export interface IForecastCell {
date: string;
time: string;
summary: string;
wind: number;
windDirection: string;
snow: number;
rain: number;
freezingLevel: number;
minTemp: number;
maxTemp: number;
windChill: number;
}
export interface IForecast {
error?: IRequestError;
name: TResortName;
url: TUrl;
issuedDate: TIssuedDate;
elevation: TElevation;
units: TUnits;
forecast: IForecastCell[];
}
export interface ITimeUtil {
times: TTimePeriods[];
days: TDay[];
currentDayOffset: number;
MIN_DAY_STRING_LEN: number;
MAX_INDEX_CNT: number;
getTime: (timePeriodIndex: number, startDay: string, index: number) => string;
getTimeOffset: (startTime: TTimePeriods) => number;
getDayOffset: (startDay: string, timePeriodIndex: number, index: number) => number;
getDay: (lastUpdateDate: string, timePeriodIndex: number, index: number) => string;
getCorrectDay: (day: string) => TDay;
fixIssueDateFormat: (issuedDate: string) => string;
getPrevDay: (startDay: TDay) => TDay;
}
export interface IUnitUtil {
TO_MPH: number;
TO_KPH: number;
TO_CM: number;
TO_IN: number;
TO_FT: number;
TO_M: number;
speedToMetric: (speed: number) => number;
speedToImperial: (speed: number) => number;
distanceToMetric: (distance: number) => number;
distanceToImperial: (distance: number) => number;
volumeToMetric: (volume: number) => number;
volumeToImperial: (volume: number) => number;
temperatureToMetric: (temperature: number) => number;
temperatureToImperial: (temperature: number) => number;
}