check-if-is-open-cron

Small script to know if a business/service is open or closed from a date using cron definition


Keywords
check, checker, open, close, cron, business open, business close, services open, services close, opening hours, open hours
License
MIT
Install
npm install check-if-is-open-cron@1.1.5

Documentation

install size tested with jest

Check If Is Open Cron

General information

Small script to know if a business/service is open or closed from a date.

Get started

npm i check-if-is-open-cron

Define an object with opening hours like this:

const opening = {
  timeZone: "Europe/Paris",
  weekDay: {
    default: "* 10-12,14-18 * * 1-5"
  },
  holidays: {
    isOpen: false,
    country: "FR",
    region: null,
    state: null,
    checkHolidaysTypes: ['public']
  }
};

Here is open from Monday to Friday from 1O to 11:59 & 14 to 17:59

To override Monday open hours to 16:00 to 17:59 add this 1: "* 16-18 * * *"

const checkIsOpenCron = require("check-if-is-open-cron");

const opening = {
  timeZone: "Europe/Paris",
  weekDay: {
    default: "* 10-12,14-18 * * 1-5",
    3: "* 16-18 * * *"
  },
  holidays: {
    isOpen: false,
    country: "FR",
    region: null,
    state: null,
    checkHolidaysTypes: ["public"]
  }
};

if (!checkIsOpenCron(opening)) {
  console.log("🛑 Closed 🛑");
} else {
  console.log("🟢 Open 🟢");
}

Parameter Sub-Parameter Type Description Sample
timeZone string TimeZone definition Europe/Paris
weekDay object Cron open/close definition
default string Cron to apply by default * 10-12,14-18 * * 1-5
0 - 6 string Specific Cron for Sunday to Saturday * 16-18 * * *
holidays objet Based on date-holidays plugin
isOpen boolean true if holidays does not influence open / close
country string Supported Countries list are on date-holidays plugin
region string Supported Regions list are on date-holidays plugin
state string Supported State list are on date-holidays plugin
checkHolidaysTypes string Supported Types list are on date-holidays plugin

Types of checkHolidaysTypes

Currently the following type with their meaning are supported. Based on date-holidays plugin

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

Cron notation

Crontab

Dependencies:

dayjs / lodash / cron-parser / date-holidays

Run test

npm run test

License

MIT