Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
date-holidays-parser
Advanced tools
parser for world-wide holidays
This module provides a parser for date-holidays which does calculation of holidays dates for various countries, states and regions by type while considering the applicable timezone.
The features are:
Happy holidays!
const data = require('date-holidays/data/holidays.json')
const Holidays = require('date-holidays-parser')
const hd = new Holidays(data)
// get supported countries
hd.getCountries()
/*>
{ AD: 'Andorra',
...
US: 'United States' }
*/
// get supported states e.g. for US
hd.getStates('US')
/*>
{ al: 'Alabama',
...
wy: 'Wyoming' }
*/
// get supported regions e.g. for US, Lousiana
hd.getRegions('US', 'la')
/*>
{ no: 'New Orleans' }
*/
// initialize holidays for US, Lousiana, New Orleans
hd.init('US', 'la', 'no')
// or using a new instance
hd = new Holidays('US', 'la', 'no')
// get all holidays for the year 2016
hd.getHolidays(2016)
/*>
[ { date: '2016-01-01 00:00:00',
start: Fri Jan 01 2016 00:00:00 GMT-0600 (CST),
end: Sat Jan 02 2016 00:00:00 GMT-0600 (CST),
name: 'New Year\'s Day',
type: 'public' },
...
{ date: '2016-11-24 00:00:00',
start: Thu Nov 24 2016 00:00:00 GMT-0600 (CST),
end: Fri Nov 25 2016 00:00:00 GMT-0600 (CST),
name: 'Thanksgiving Day',
type: 'public' },
...
{ date: '2016-12-26 00:00:00',
start: Mon Dec 26 2016 00:00:00 GMT-0600 (CST),
end: Tue Dec 27 2016 00:00:00 GMT-0600 (CST),
substitute: true,
name: 'Christmas Day (substitute day)',
type: 'public' } ]
*/
// check if date is a holiday while respecting timezones
hd.isHoliday(new Date('2016-02-09 00:00:00 GMT+0000'))
//> false
hd.isHoliday(new Date('2016-02-09 10:00:00 GMT-0600'))
/*>
{ date: '2016-02-09 00:00:00',
start: Tue Feb 09 2016 00:00:00 GMT-0600 (CST),
end: Wed Feb 10 2016 00:00:00 GMT-0600 (CST),
name: 'Mardi Gras',
type: 'public' }
*/
getHolidays()
as well as a matching isHoliday()
call return either
a list or a single holiday object which consists of:
language
(if available)public|bank|school|optional|observance
The date
String represents the start date of the holiday in ISO
format without timezone. This string it intended for information only.
start
and end
are the start/end date of the holiday within the
selected timezone of the country, state, region.
The name
names the holiday in the local language of the selected
country, state, region. The applied language(s) can be requested using
getLanguages()
.
The language can be changed using the setLanguages()
method. In case
that not translation is available a fall-back to the next given
language will be made. E.g. local language is "fr",
setLanguages('nl')
was called. For all holidays where no dutch
translation is available the French version will be used instead.
All holiday names should support an English translation.
Currently the following type with their meaning are supported
type | meaning |
---|---|
public | public holiday |
bank | bank holiday, banks and offices are closed |
school | school holiday, schools are closed |
optional | majority of people take a day off |
observance | optional festivity, no paid day off |
Additionally a note
field is sometimes available for further
clarification.
See Holidays API for further information.
This project also runs in all modern browsers. See ./examples/browser
Browser | Version | Notes |
---|---|---|
Chrome | >=45 | |
Firefox | >=45 | |
Safari | >=10 | |
Edge | >=13 | |
IE | >=10 | needs polyfill core-js/es6 |
Please do not forget to set the correct charset!
<html>
<head>
<!-- set page-wide -->
<meta charset="UTF-8">
...
</head>
<body>
...
<!-- or per script -->
<script src="your-bundle.js" charset="UTF-8"></script>
Testing was done with zuul
. For local browser tests run npm run zuul -- --local 3000
and open http://localhost:3000/__zuul.
requires manual install of
npm i zuul@3 browserify@10
All data for the holidays of the different countries is contained in
./data/holidays.json
. For changing holiday
data edit the appropriate country in ./data/countries
. Any details on
structure and available grammar for holiday attribution is described in
holidays.yaml specification.
If you contribute code to this project, you are implicitly allowing your code to be distributed under the ISC license. You are also implicitly verifying that all code is your original work or correctly attributed with the source of its origin and license.
Copyright (c) 2015-present commenthol (ISC License)
See LICENSE for more information.
FAQs
parser for worldwide holidays
The npm package date-holidays-parser receives a total of 70,888 weekly downloads. As such, date-holidays-parser popularity was classified as popular.
We found that date-holidays-parser demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.