holidayapi-node/dist/types.d.ts
Josh Sherman 319d67d84b feat: pull country or language by code.
* feat: pull country or language by code.

This differs from the existing `search` functionality in that it allows
you to explicitly pull back a single country or language instead of
anything that matches (which could result in more items returned than
expected).

* refactor(types): add new types for the affected endpoints.
* docs(readme): update to include examples for new functionality.
* test: expand tests to include new parameters.
* feat(package): upgrade dependencies to the latest versions.
* fix(eslint): adjust configuration based on an updated dependency.
* docs(license): bump the year of the license.
2020-02-11 19:06:09 -06:00

71 lines
1.7 KiB
TypeScript

export declare type Endpoint = 'countries' | 'holidays' | 'languages';
declare type Request = {
format?: 'csv' | 'json' | 'php' | 'tsv' | 'yaml' | 'xml';
key?: string;
pretty?: boolean;
search?: string;
};
export declare type Requests = CountriesRequest | HolidaysRequest | LanguagesRequest;
export declare type CountriesRequest = Request & {
country?: string;
};
export declare type HolidaysRequest = Request & {
country?: string;
day?: number;
language?: string;
month?: number;
previous?: boolean;
public?: boolean;
subdivisions?: boolean;
upcoming?: boolean;
year?: number;
};
export declare type LanguagesRequest = Request & {
language?: string;
};
export declare type Response = {
requests: {
available: number;
resets: Date;
used: number;
};
status: number;
error?: string;
};
export declare type Responses = (CountriesResponse | HolidaysResponse | LanguagesResponse);
export declare type CountriesResponse = Response & {
countries?: {
code: string;
codes: {
'alpha-2': string;
'alpha-3': string;
numeric: string;
};
flag: string;
languages: string[];
name: string;
subdivisions: {
code: string;
languages: string[];
name: string;
}[];
}[];
};
export declare type HolidaysResponse = Response & {
holidays?: {
country: string;
date: Date;
name: string;
observed: Date;
public: boolean;
uuid: string;
subdivisions?: string[];
}[];
};
export declare type LanguagesResponse = Response & {
languages?: {
code: string;
name: string;
}[];
};
export {};