jewish-holidays
Version:
288 lines (276 loc) • 10.4 kB
JavaScript
;
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