UNPKG

jewish-holidays

Version:
256 lines (246 loc) 8.72 kB
// src/cholHaMoed/cholHaMoed.ts import { toJewishDate as toJewishDate2 } from "jewish-date"; // src/holiday/holiday.ts import { toJewishDate } from "jewish-date"; var isDateInHolidayList = (jewishDate, holidayList) => { const effectiveJewishDate = jewishDate ?? 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 = toJewishDate2(date); } const cholHaMoed = isChutzLaaretz ? getCholHaMoedChutzLaaretz() : getCholHaMoedIsrael(); return isDateInHolidayList(jewishDate, cholHaMoed); }; // src/chanukah/chanukah.ts import { calcDaysInMonth, toJewishDate as toJewishDate3 } from "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 (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 = toJewishDate3(date); } const chanukahList = getChanukahList(jewishDate.year); return isDateInHolidayList(jewishDate, chanukahList); }; // src/shabbat/erevShabbat.ts import { toGregorianDate } from "jewish-date"; var isErevShabbat = (date) => { let gregorianDate; if (isBasicJewishDate(date)) { gregorianDate = toGregorianDate(date); } else { gregorianDate = date; } return gregorianDate.getDay() === 5; }; // src/shabbat/shabbat.ts import { toGregorianDate as toGregorianDate2 } from "jewish-date"; var isShabbat = (date) => { let gregorianDate; if (isBasicJewishDate(date)) { gregorianDate = toGregorianDate2(date); } else { gregorianDate = date; } return gregorianDate.getDay() === 6; }; // src/yomTov/yomTov.ts import { toJewishDate as toJewishDate4 } from "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 = toJewishDate4(date); } const yomTovList = [ ...getYomTovListIsrael(), ...isChutzLaaretz ? getYomTovListChutzLaaretzOnly() : [] ]; return isDateInHolidayList(jewishDate, yomTovList); }; // src/yomTov/erevYomTov.ts import { toJewishDate as toJewishDate5 } from "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 = toJewishDate5(date); } const yomTovList = [...getErevYomTovList()]; return isDateInHolidayList(jewishDate, yomTovList); }; // src/purim/purim.ts import { JewishMonth, toJewishDate as toJewishDate6 } from "jewish-date"; var getPurimList = () => { return [ { day: 14, monthName: JewishMonth.Adar, name: "Purim" }, { day: 15, monthName: JewishMonth.Adar, name: "Shushan Purim" }, { day: 14, monthName: JewishMonth.AdarII, name: "Purim" }, { day: 15, monthName: JewishMonth.AdarII, name: "Shushan Purim" } ]; }; var isPurim = (date) => { let jewishDate; if (isBasicJewishDate(date)) { jewishDate = date; } else { jewishDate = toJewishDate6(date); } const purimList = getPurimList(); return isDateInHolidayList(jewishDate, purimList); }; // src/tzumot/tzumot.ts import { JewishMonth as JewishMonth2, toJewishDate as toJewishDate7 } from "jewish-date"; var getTzomotList = () => { return [ { day: 3, monthName: JewishMonth2.Tishri, name: "Tzom Gdalia" }, { day: 10, monthName: JewishMonth2.Tishri, name: "Yom Kippur" }, { day: 10, monthName: JewishMonth2.Tevet, name: "Asara BeTevet" }, { day: 13, monthName: JewishMonth2.Adar, name: "Taanit Esther" }, { day: 13, monthName: JewishMonth2.AdarII, name: "Taanit Esther" }, { day: 14, monthName: JewishMonth2.Nisan, name: "Taanit Bechorot" }, { day: 17, monthName: JewishMonth2.Tammuz, name: "Shiva Asar BeTamuz" }, { day: 9, monthName: JewishMonth2.Av, name: "Tisha BeAv" } ]; }; var shouldDelayFast = (jewishDate) => { const delayableFasts = [ { day: 17, monthName: JewishMonth2.Tammuz, name: "Shiva Asar BeTamuz (delayed)" }, { day: 9, monthName: JewishMonth2.Av, name: "Tisha BeAv (delayed)" }, { day: 13, monthName: JewishMonth2.Adar, name: "Taanit Esther (delayed)" }, { day: 13, monthName: JewishMonth2.AdarII, name: "Taanit Esther (delayed)" }, { day: 3, monthName: JewishMonth2.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 = toJewishDate7(date); } const tzomotList = getTzomotList(); if (isDateInHolidayList(jewishDate, tzomotList) && (!isShabbat(jewishDate) || !shouldDelayFast(jewishDate))) { return true; } const previousDay = { ...jewishDate, day: jewishDate.day - 1 }; return shouldDelayFast(previousDay); }; export { isChanukah, isCholHaMoed, isDateInHolidayList, isErevShabbat, isErevYomTov, isPurim, isShabbat, isTzom, isYomTov }; //# sourceMappingURL=index.mjs.map