UNPKG

jewish-holidays

Version:
288 lines (276 loc) 10.4 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var index_exports = {}; __export(index_exports, { isChanukah: () => isChanukah, isCholHaMoed: () => isCholHaMoed, isDateInHolidayList: () => isDateInHolidayList, isErevShabbat: () => isErevShabbat, isErevYomTov: () => isErevYomTov, isPurim: () => isPurim, isShabbat: () => isShabbat, isTzom: () => isTzom, isYomTov: () => isYomTov }); module.exports = __toCommonJS(index_exports); // src/cholHaMoed/cholHaMoed.ts var import_jewish_date2 = require("jewish-date"); // src/holiday/holiday.ts var import_jewish_date = require("jewish-date"); var isDateInHolidayList = (jewishDate, holidayList) => { const effectiveJewishDate = jewishDate ?? (0, import_jewish_date.toJewishDate)(/* @__PURE__ */ new Date()); return holidayList.some( (i) => i.day === effectiveJewishDate.day && i.monthName === effectiveJewishDate.monthName ); }; // src/jewishDateUtils/jewishDateUtils.ts var isBasicJewishDate = (object) => { return "monthName" in object; }; // src/cholHaMoed/cholHaMoed.ts var getCholHaMoedIsrael = () => { const result = [ { day: 16, monthName: "Tishri", name: "Chol HaMoed" }, { day: 17, monthName: "Tishri", name: "Chol HaMoed" }, { day: 18, monthName: "Tishri", name: "Chol HaMoed" }, { day: 19, monthName: "Tishri", name: "Chol HaMoed" }, { day: 20, monthName: "Tishri", name: "Chol HaMoed" }, { day: 21, monthName: "Tishri", name: "Chol HaMoed" }, { day: 16, monthName: "Nisan", name: "Chol HaMoed" }, { day: 17, monthName: "Nisan", name: "Chol HaMoed" }, { day: 18, monthName: "Nisan", name: "Chol HaMoed" }, { day: 19, monthName: "Nisan", name: "Chol HaMoed" }, { day: 20, monthName: "Nisan", name: "Chol HaMoed" } ]; return result; }; var getCholHaMoedChutzLaaretz = () => { const result = [ { day: 17, monthName: "Tishri", name: "Chol HaMoed" }, { day: 18, monthName: "Tishri", name: "Chol HaMoed" }, { day: 19, monthName: "Tishri", name: "Chol HaMoed" }, { day: 20, monthName: "Tishri", name: "Chol HaMoed" }, { day: 21, monthName: "Tishri", name: "Chol HaMoed" }, { day: 17, monthName: "Nisan", name: "Chol HaMoed" }, { day: 18, monthName: "Nisan", name: "Chol HaMoed" }, { day: 19, monthName: "Nisan", name: "Chol HaMoed" }, { day: 20, monthName: "Nisan", name: "Chol HaMoed" } ]; return result; }; var isCholHaMoed = (date, isChutzLaaretz = false) => { let jewishDate; if (isBasicJewishDate(date)) { jewishDate = date; } else { jewishDate = (0, import_jewish_date2.toJewishDate)(date); } const cholHaMoed = isChutzLaaretz ? getCholHaMoedChutzLaaretz() : getCholHaMoedIsrael(); return isDateInHolidayList(jewishDate, cholHaMoed); }; // src/chanukah/chanukah.ts var import_jewish_date3 = require("jewish-date"); var getChanukahList = (jewishYear) => { const result = [ { day: 25, monthName: "Kislev", name: "Chanukah" }, { day: 26, monthName: "Kislev", name: "Chanukah" }, { day: 27, monthName: "Kislev", name: "Chanukah" }, { day: 28, monthName: "Kislev", name: "Chanukah" }, { day: 29, monthName: "Kislev", name: "Chanukah" }, { day: 30, monthName: "Kislev", name: "Chanukah" }, { day: 1, monthName: "Tevet", name: "Chanukah" }, { day: 2, monthName: "Tevet", name: "Chanukah" } ]; if ((0, import_jewish_date3.calcDaysInMonth)(jewishYear, "Kislev") === 29) { result.push({ day: 3, monthName: "Tevet", name: "Chanukah" }); } return result; }; var isChanukah = (date) => { let jewishDate; if (isBasicJewishDate(date)) { jewishDate = date; } else { jewishDate = (0, import_jewish_date3.toJewishDate)(date); } const chanukahList = getChanukahList(jewishDate.year); return isDateInHolidayList(jewishDate, chanukahList); }; // src/shabbat/erevShabbat.ts var import_jewish_date4 = require("jewish-date"); var isErevShabbat = (date) => { let gregorianDate; if (isBasicJewishDate(date)) { gregorianDate = (0, import_jewish_date4.toGregorianDate)(date); } else { gregorianDate = date; } return gregorianDate.getDay() === 5; }; // src/shabbat/shabbat.ts var import_jewish_date5 = require("jewish-date"); var isShabbat = (date) => { let gregorianDate; if (isBasicJewishDate(date)) { gregorianDate = (0, import_jewish_date5.toGregorianDate)(date); } else { gregorianDate = date; } return gregorianDate.getDay() === 6; }; // src/yomTov/yomTov.ts var import_jewish_date6 = require("jewish-date"); var getYomTovListIsrael = () => { const result = [ { day: 1, monthName: "Tishri", name: "Rosh Hashanah" }, { day: 2, monthName: "Tishri", name: "Rosh Hashanah" }, { day: 10, monthName: "Tishri", name: "Yom Kippur" }, { day: 15, monthName: "Tishri", name: "Sukkot" }, { day: 22, monthName: "Tishri", name: "Simchat Torah" }, { day: 15, monthName: "Nisan", name: "Pesach" }, { day: 21, monthName: "Nisan", name: "Shevii Shel Pesach" }, { day: 6, monthName: "Sivan", name: "Shavuot" } ]; return result; }; var getYomTovListChutzLaaretzOnly = () => { const result = [ { day: 16, monthName: "Tishri", name: "Sukkot" }, { day: 23, monthName: "Tishri", name: "Simchat Torah" }, { day: 16, monthName: "Nisan", name: "Pesach" }, { day: 22, monthName: "Nisan", name: "Pesach Shel Pesach" }, { day: 7, monthName: "Sivan", name: "Shavuot" } ]; return result; }; var isYomTov = (date, isChutzLaaretz = false) => { let jewishDate; if (isBasicJewishDate(date)) { jewishDate = date; } else { jewishDate = (0, import_jewish_date6.toJewishDate)(date); } const yomTovList = [ ...getYomTovListIsrael(), ...isChutzLaaretz ? getYomTovListChutzLaaretzOnly() : [] ]; return isDateInHolidayList(jewishDate, yomTovList); }; // src/yomTov/erevYomTov.ts var import_jewish_date7 = require("jewish-date"); var getErevYomTovList = () => { const result = [ { day: 29, monthName: "Elul", name: "Erev Rosh Hashanah" }, { day: 9, monthName: "Tishri", name: "Erev Yom Kippur" }, { day: 14, monthName: "Tishri", name: "Erev Sukkot" }, { day: 21, monthName: "Tishri", name: "Erev Simchat Torah" }, { day: 14, monthName: "Nisan", name: "Erev Pesach" }, { day: 20, monthName: "Nisan", name: "Erev Shvi'i Shel Pesach" }, { day: 5, monthName: "Sivan", name: "Erev Shavuot" } ]; return result; }; var isErevYomTov = (date) => { let jewishDate; if (isBasicJewishDate(date)) { jewishDate = date; } else { jewishDate = (0, import_jewish_date7.toJewishDate)(date); } const yomTovList = [...getErevYomTovList()]; return isDateInHolidayList(jewishDate, yomTovList); }; // src/purim/purim.ts var import_jewish_date8 = require("jewish-date"); var getPurimList = () => { return [ { day: 14, monthName: import_jewish_date8.JewishMonth.Adar, name: "Purim" }, { day: 15, monthName: import_jewish_date8.JewishMonth.Adar, name: "Shushan Purim" }, { day: 14, monthName: import_jewish_date8.JewishMonth.AdarII, name: "Purim" }, { day: 15, monthName: import_jewish_date8.JewishMonth.AdarII, name: "Shushan Purim" } ]; }; var isPurim = (date) => { let jewishDate; if (isBasicJewishDate(date)) { jewishDate = date; } else { jewishDate = (0, import_jewish_date8.toJewishDate)(date); } const purimList = getPurimList(); return isDateInHolidayList(jewishDate, purimList); }; // src/tzumot/tzumot.ts var import_jewish_date9 = require("jewish-date"); var getTzomotList = () => { return [ { day: 3, monthName: import_jewish_date9.JewishMonth.Tishri, name: "Tzom Gdalia" }, { day: 10, monthName: import_jewish_date9.JewishMonth.Tishri, name: "Yom Kippur" }, { day: 10, monthName: import_jewish_date9.JewishMonth.Tevet, name: "Asara BeTevet" }, { day: 13, monthName: import_jewish_date9.JewishMonth.Adar, name: "Taanit Esther" }, { day: 13, monthName: import_jewish_date9.JewishMonth.AdarII, name: "Taanit Esther" }, { day: 14, monthName: import_jewish_date9.JewishMonth.Nisan, name: "Taanit Bechorot" }, { day: 17, monthName: import_jewish_date9.JewishMonth.Tammuz, name: "Shiva Asar BeTamuz" }, { day: 9, monthName: import_jewish_date9.JewishMonth.Av, name: "Tisha BeAv" } ]; }; var shouldDelayFast = (jewishDate) => { const delayableFasts = [ { day: 17, monthName: import_jewish_date9.JewishMonth.Tammuz, name: "Shiva Asar BeTamuz (delayed)" }, { day: 9, monthName: import_jewish_date9.JewishMonth.Av, name: "Tisha BeAv (delayed)" }, { day: 13, monthName: import_jewish_date9.JewishMonth.Adar, name: "Taanit Esther (delayed)" }, { day: 13, monthName: import_jewish_date9.JewishMonth.AdarII, name: "Taanit Esther (delayed)" }, { day: 3, monthName: import_jewish_date9.JewishMonth.Tishri, name: "Tzom Gdalia (delayed)" } ]; return isShabbat(jewishDate) && delayableFasts.some( (fast) => fast.day === jewishDate.day && fast.monthName === jewishDate.monthName ); }; var isTzom = (date) => { let jewishDate; if (isBasicJewishDate(date)) { jewishDate = date; } else { jewishDate = (0, import_jewish_date9.toJewishDate)(date); } const tzomotList = getTzomotList(); if (isDateInHolidayList(jewishDate, tzomotList) && (!isShabbat(jewishDate) || !shouldDelayFast(jewishDate))) { return true; } const previousDay = { ...jewishDate, day: jewishDate.day - 1 }; return shouldDelayFast(previousDay); }; // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { isChanukah, isCholHaMoed, isDateInHolidayList, isErevShabbat, isErevYomTov, isPurim, isShabbat, isTzom, isYomTov }); //# sourceMappingURL=index.js.map