black-friday
Version:
A lightweight, dependency-free utility to calculate Thanksgiving, Black Friday, and Cyber Monday dates for a given year.
74 lines (73 loc) • 3.15 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, {
blackFriday: () => blackFriday,
cyberMonday: () => cyberMonday,
daysUntilBlackFriday: () => daysUntilBlackFriday,
daysUntilCyberMonday: () => daysUntilCyberMonday,
daysUntilThanksgiving: () => daysUntilThanksgiving,
thanksgiving: () => thanksgiving
});
module.exports = __toCommonJS(index_exports);
var getNovFirst = (year = (/* @__PURE__ */ new Date()).getFullYear()) => new Date(year, 10, 1);
var getFirstThursday = (year = (/* @__PURE__ */ new Date()).getFullYear()) => {
const novFirst = getNovFirst(year);
const dayOfWeek = novFirst.getDay();
const daysToAdd = dayOfWeek <= 4 ? 4 - dayOfWeek : 11 - dayOfWeek;
return new Date(novFirst.getFullYear(), novFirst.getMonth(), novFirst.getDate() + daysToAdd);
};
var thanksgiving = (year = (/* @__PURE__ */ new Date()).getFullYear()) => {
const firstThursday = getFirstThursday(year);
return new Date(firstThursday.getFullYear(), firstThursday.getMonth(), firstThursday.getDate() + 21);
};
var blackFriday = (year = (/* @__PURE__ */ new Date()).getFullYear()) => {
const thanksgivingDate = thanksgiving(year);
return new Date(thanksgivingDate.getFullYear(), thanksgivingDate.getMonth(), thanksgivingDate.getDate() + 1);
};
var cyberMonday = (year = (/* @__PURE__ */ new Date()).getFullYear()) => {
const thanksgivingDate = thanksgiving(year);
return new Date(thanksgivingDate.getFullYear(), thanksgivingDate.getMonth(), thanksgivingDate.getDate() + 4);
};
var daysUntil = (eventDate) => {
const today = /* @__PURE__ */ new Date();
today.setHours(0, 0, 0, 0);
eventDate.setHours(0, 0, 0, 0);
return Math.ceil((eventDate.getTime() - today.getTime()) / (1e3 * 3600 * 24));
};
var daysUntilThanksgiving = (year = (/* @__PURE__ */ new Date()).getFullYear()) => {
return daysUntil(thanksgiving(year));
};
var daysUntilBlackFriday = (year = (/* @__PURE__ */ new Date()).getFullYear()) => {
return daysUntil(blackFriday(year));
};
var daysUntilCyberMonday = (year = (/* @__PURE__ */ new Date()).getFullYear()) => {
return daysUntil(cyberMonday(year));
};
// Annotate the CommonJS export names for ESM import in node:
0 && (module.exports = {
blackFriday,
cyberMonday,
daysUntilBlackFriday,
daysUntilCyberMonday,
daysUntilThanksgiving,
thanksgiving
});
//# sourceMappingURL=index.js.map