jewish-holidays
Version:
256 lines (246 loc) • 8.72 kB
JavaScript
// 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