UNPKG

@swarecito/recall-cli

Version:

Get an active recall calendar by calling a function

124 lines (123 loc) 4.44 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.memoDate = exports.isMemoTime = exports.calendar = void 0; const addDays_1 = __importDefault(require("date-fns/addDays")); const addMonths_1 = __importDefault(require("date-fns/addMonths")); const addWeeks_1 = __importDefault(require("date-fns/addWeeks")); const format_1 = __importDefault(require("date-fns/format")); const date_fns_1 = require("date-fns"); /** * @name calendar * @category Calendar * @summary Get an active recall calendar * * @description * Get an active recall calendar * * @returns an object containing the new calendar * @throws {TypeError} - 0 arguments required * * @example * // Get a calendar since 12 March 2023: * const result = calendar() * //=> * { recallOne: '15 March 2023', recallTwo: '19 March 2023', recallThree: '26 March 2023', recallFour: '09 April 2023', recallFive: '30 April 2023', recallSix: '30 May 2023', recallSeven: '30 July 2023', recallEight: '30 October 2023', recallNine: '29 February 2024', recallTen: '29 July 2024' } */ const calendar = () => { let recallOne = (0, addDays_1.default)(Date.parse(Date()), 3); let recallTwo = (0, addWeeks_1.default)(recallOne, 1); let recallThree = (0, addWeeks_1.default)(recallTwo, 2); let recallFour = (0, addWeeks_1.default)(recallThree, 2); let recallFive = (0, addWeeks_1.default)(recallFour, 3); let recallSix = (0, addMonths_1.default)(recallFive, 1); let recallSeven = (0, addMonths_1.default)(recallSix, 2); let recallEight = (0, addMonths_1.default)(recallSeven, 3); let recallNine = (0, addMonths_1.default)(recallEight, 4); let recallTen = (0, addMonths_1.default)(recallNine, 5); const calendar = { recallOne: (0, format_1.default)(recallOne, 'dd MMMM yyyy'), recallTwo: (0, format_1.default)(recallTwo, 'dd MMMM yyyy'), recallThree: (0, format_1.default)(recallThree, 'dd MMMM yyyy'), recallFour: (0, format_1.default)(recallFour, 'dd MMMM yyyy'), recallFive: (0, format_1.default)(recallFive, 'dd MMMM yyyy'), recallSix: (0, format_1.default)(recallSix, 'dd MMMM yyyy'), recallSeven: (0, format_1.default)(recallSeven, 'dd MMMM yyyy'), recallEight: (0, format_1.default)(recallEight, 'dd MMMM yyyy'), recallNine: (0, format_1.default)(recallNine, 'dd MMMM yyyy'), recallTen: (0, format_1.default)(recallTen, 'dd MMMM yyyy'), }; return calendar; }; exports.calendar = calendar; /** * @name isMemoTime * @category Calendar * @summary Tells whether or not is time to take a recall based on a "memoDate" * * @description * Tells whether or not it's time to take a recall based on a "memoDate". * "memoTime" starts one day before the next recall date * @returns a boolean * @throws {TypeError} - 1 arguments required * * @example * // Set a new "memoDate" d * let memoObj: MemoDateData = Object(); * memoObj.calendar = calendar(); * memoObj.lastRecallDay = Date(); * memoObj.nextRecallDay = addDays(Date.parse(Date()), 3) // The first recall happens 3 days from the moment of the firt test so it's not time and the function will return false * * isMemoTime(memoObj) * // => false */ const isMemoTime = (memoDate) => { let isTime = false; const result = (0, date_fns_1.differenceInDays)(Date.parse(memoDate.nextRecallDay), Date.now()); if (result <= 1) { return (isTime = true); } else { return (isTime = false); } }; exports.isMemoTime = isMemoTime; /** * @name memoDate * @category Calendar * @summary Set a "memoDate" that is an active recall calendar, the last and next recall dates * * @description * Set a "memoDate" that is an active recall calendar, the last and next recall dates * * @returns an object containing the new calendar * @throws {TypeError} - 0 arguments required * * @example * // See : * @function calendar * @function isMemoTime * */ const memoDate = () => { let memoObj = Object(); memoObj.calendar = (0, exports.calendar)(); memoObj.lastRecallDay = Date(); memoObj.nextRecallDay = memoObj.calendar.recallOne; return memoObj; }; exports.memoDate = memoDate; console.log((0, exports.isMemoTime)((0, exports.memoDate)()));