mirror of
https://github.com/holidayapi/holidayapi-node.git
synced 2025-06-21 12:36:33 +00:00
feat: add workday endpoint
Added support for our latest endpoint, which calculates the workday a given number of business days into the future from the given date for the given country. Also: * perf: updated dependencies * ci: pinned eslint to 7.2.x due to airbnb incompatibility with 7.3.x. * ci: tweaked / improved eslint rules a bit. * refactor: updated types to use `;` and include weekday response. * docs: added example for new endpoint.
This commit is contained in:
parent
07988d8c71
commit
2230488d14
10 changed files with 377 additions and 177 deletions
3
dist/holidayapi.d.ts
vendored
3
dist/holidayapi.d.ts
vendored
|
@ -1,4 +1,4 @@
|
|||
import { CountriesRequest, CountriesResponse, HolidaysResponse, HolidaysRequest, LanguagesRequest, LanguagesResponse } from './types';
|
||||
import { CountriesRequest, CountriesResponse, HolidaysRequest, HolidaysResponse, LanguagesRequest, LanguagesResponse, WorkdayRequest, WorkdayResponse } from './types';
|
||||
export declare class HolidayAPI {
|
||||
baseUrl: string;
|
||||
key: string;
|
||||
|
@ -11,4 +11,5 @@ export declare class HolidayAPI {
|
|||
countries(request?: CountriesRequest): Promise<CountriesResponse>;
|
||||
holidays(request?: HolidaysRequest): Promise<HolidaysResponse>;
|
||||
languages(request?: LanguagesRequest): Promise<LanguagesResponse>;
|
||||
workday(request?: WorkdayRequest): Promise<WorkdayResponse>;
|
||||
}
|
||||
|
|
20
dist/holidayapi.js
vendored
20
dist/holidayapi.js
vendored
|
@ -132,6 +132,26 @@ var HolidayAPI = (function () {
|
|||
});
|
||||
});
|
||||
};
|
||||
HolidayAPI.prototype.workday = function (request) {
|
||||
if (request === void 0) { request = {}; }
|
||||
return __awaiter(this, void 0, void 0, function () {
|
||||
return __generator(this, function (_a) {
|
||||
if (!request.country) {
|
||||
throw new Error('Missing country');
|
||||
}
|
||||
else if (!request.start) {
|
||||
throw new Error('Missing start date');
|
||||
}
|
||||
else if (!request.days) {
|
||||
throw new Error('Missing days');
|
||||
}
|
||||
else if (request.days < 1) {
|
||||
throw new Error('Days must be 1 or more');
|
||||
}
|
||||
return [2, this.request('workday', request)];
|
||||
});
|
||||
});
|
||||
};
|
||||
return HolidayAPI;
|
||||
}());
|
||||
exports.HolidayAPI = HolidayAPI;
|
||||
|
|
27
dist/types.d.ts
vendored
27
dist/types.d.ts
vendored
|
@ -1,11 +1,15 @@
|
|||
export declare type Endpoint = 'countries' | 'holidays' | 'languages';
|
||||
export declare type Endpoint = 'countries' | 'holidays' | 'languages' | 'workday';
|
||||
declare type Weekday = {
|
||||
name: 'Monday' | 'Tuesday' | 'Wednesday' | 'Thursday' | 'Friday' | 'Saturday' | 'Sunday';
|
||||
numeric: 1 | 2 | 3 | 4 | 5 | 6 | 7;
|
||||
};
|
||||
declare type Request = {
|
||||
format?: 'csv' | 'json' | 'php' | 'tsv' | 'yaml' | 'xml';
|
||||
format?: 'csv' | 'json' | 'php' | 'tsv' | 'xml' | 'yaml';
|
||||
key?: string;
|
||||
pretty?: boolean;
|
||||
search?: string;
|
||||
};
|
||||
export declare type Requests = CountriesRequest | HolidaysRequest | LanguagesRequest;
|
||||
export declare type Requests = CountriesRequest | HolidaysRequest | LanguagesRequest | WorkdayRequest;
|
||||
export declare type CountriesRequest = Request & {
|
||||
country?: string;
|
||||
public?: boolean;
|
||||
|
@ -24,6 +28,11 @@ export declare type HolidaysRequest = Request & {
|
|||
export declare type LanguagesRequest = Request & {
|
||||
language?: string;
|
||||
};
|
||||
export declare type WorkdayRequest = Request & {
|
||||
country?: string;
|
||||
start?: string;
|
||||
days?: number;
|
||||
};
|
||||
export declare type Response = {
|
||||
requests: {
|
||||
available: number;
|
||||
|
@ -33,7 +42,7 @@ export declare type Response = {
|
|||
status: number;
|
||||
error?: string;
|
||||
};
|
||||
export declare type Responses = (CountriesResponse | HolidaysResponse | LanguagesResponse);
|
||||
export declare type Responses = CountriesResponse | HolidaysResponse | LanguagesResponse | WorkdayResponse;
|
||||
export declare type CountriesResponse = Response & {
|
||||
countries?: {
|
||||
code: string;
|
||||
|
@ -50,6 +59,10 @@ export declare type CountriesResponse = Response & {
|
|||
languages: string[];
|
||||
name: string;
|
||||
}[];
|
||||
weekday: {
|
||||
date: Weekday;
|
||||
observed: Weekday;
|
||||
};
|
||||
}[];
|
||||
};
|
||||
export declare type HolidaysResponse = Response & {
|
||||
|
@ -69,4 +82,10 @@ export declare type LanguagesResponse = Response & {
|
|||
name: string;
|
||||
}[];
|
||||
};
|
||||
export declare type WorkdayResponse = Response & {
|
||||
workday?: {
|
||||
date: Date;
|
||||
weekday: Weekday;
|
||||
};
|
||||
};
|
||||
export {};
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue