UNPKG

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
"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, { 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