@swarecito/recall-cli
Version:
Get an active recall calendar by calling a function
124 lines (123 loc) • 4.44 kB
JavaScript
;
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)()));