@sap_oss/wdio-qmate-service
Version:
[](https://api.reuse.software/info/github.com/SAP/wdio-qmate-service)[](http
174 lines • 8.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.DateModule = void 0;
const date_constants_1 = require("./constants/date.constants");
const formatter_constants_1 = require("../util/constants/formatter.constants");
const verboseLogger_1 = require("../../helper/verboseLogger");
/**
* @class date
* @memberof common
*/
class DateModule {
constructor() {
this.vlf = new verboseLogger_1.VerboseLoggerFactory("common", "date");
}
// =================================== GET DATES ===================================
/**
* @function getToday
* @memberOf common.date
* @description Returns the current day in the given format.
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object").
* @returns {String} The date in the given format.
* @example const date = await common.date.getToday("mm/dd/yyyy");
*/
getToday(format = formatter_constants_1.DateFormats.OBJECT) {
const vl = this.vlf.initLog(this.getToday);
const date = new Date();
vl.log(date.toISOString());
return util.formatter.formatDate(date, format);
}
/**
* @function getTomorrow
* @memberOf common.date
* @description Returns tomorrows date in the given format.
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object").
* @returns {String} The date in the given format.
* @example const date = await common.date.getTomorrow("mm/dd/yyyy");
*/
getTomorrow(format = formatter_constants_1.DateFormats.OBJECT) {
const vl = this.vlf.initLog(this.getTomorrow);
const date = new Date();
date.setDate(date.getDate() + 1);
vl.log(date.toISOString());
return util.formatter.formatDate(date, format);
}
/**
* @function getNextMonth
* @memberOf common.date
* @description Returns the current day one month later in the given format.
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object").
* @returns {String} The date in the given format.
* @example const date = await common.date.getNextMonth("mm/dd/yyyy");
*/
getNextMonth(format = formatter_constants_1.DateFormats.OBJECT) {
const vl = this.vlf.initLog(this.getTomorrow);
const date = new Date();
date.setMonth(date.getMonth() + 1);
vl.log(date.toISOString());
return util.formatter.formatDate(date, format);
}
/**
* @function getPreviousMonth
* @memberOf common.date
* @description Returns the current day one month before in the given format.
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object").
* @returns {String} The date in the given format.
* @example const date = await common.date.getPreviousMonth("mm/dd/yyyy");
*/
getPreviousMonth(format = formatter_constants_1.DateFormats.OBJECT) {
const vl = this.vlf.initLog(this.getPreviousMonth);
const date = new Date();
date.setMonth(date.getMonth() - 1);
vl.log(date.toISOString());
return util.formatter.formatDate(date, format);
}
/**
* @function getNextYear
* @memberOf common.date
* @description Returns the current day one year later in the given format.
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object").
* @returns {String} The date in the given format.
* @example const date = await common.date.getNextYear("mm/dd/yyyy");
*/
getNextYear(format = formatter_constants_1.DateFormats.OBJECT) {
const vl = this.vlf.initLog(this.getNextYear);
const date = new Date();
date.setFullYear(date.getFullYear() + 1);
vl.log(date.toISOString());
return util.formatter.formatDate(date, format);
}
/**
* @function getPreviousYear
* @memberOf common.date
* @description Returns the current day one year before in the given format.
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object").
* @returns {String} The date in the given format.
* @example const date = await common.date.getPreviousYear("mm/dd/yyyy");
*/
getPreviousYear(format = formatter_constants_1.DateFormats.OBJECT) {
const vl = this.vlf.initLog(this.getPreviousYear);
const date = new Date();
date.setFullYear(date.getFullYear() - 1);
vl.log(date.toISOString());
return util.formatter.formatDate(date, format);
}
/**
* @function getSpecific
* @memberOf common.date
* @description Returns a specific date in the given format.
* @param {String} date - A specific date string.
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object").
* @returns {String} The date in the given format.
* @example const date = await common.date.getSpecific("2020, 0, 17", "mm/dd/yyyy");
*/
getSpecific(date, format = formatter_constants_1.DateFormats.OBJECT) {
const vl = this.vlf.initLog(this.getSpecific);
if (!date) {
throw new Error("Function 'getSpecific' failed: Please provide a date string ('2020, 0, 17') as first argument.");
}
const parsedDate = Date.parse(date);
const dateObject = new Date(parsedDate);
vl.log(dateObject.toISOString());
return util.formatter.formatDate(dateObject, format);
}
/**
* @function calculate
* @memberOf common.date
* @description Calculates the date based on the input parameter and returns it in the given format.
* @param {String} [date="today"] - Supported values: today, tomorrow, nextMonth, previousMonth, nextYear, previousYear
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "mmm d, yyyy", "datetime", "object").
* @returns {String} The calculated date in the given format.
* @example const date = await common.date.calculate("today", "mm/dd/yyyy");
*/
calculate(date = date_constants_1.CalculateDates.TODAY, format = formatter_constants_1.DateFormats.OBJECT) {
const vl = this.vlf.initLog(this.calculate);
if (date === null) {
date = date_constants_1.CalculateDates.TODAY;
}
if (format === null) {
format = formatter_constants_1.DateFormats.OBJECT;
}
let calculatedDate;
switch (date) {
case date_constants_1.CalculateDates.TODAY:
calculatedDate = this.getToday(format);
break;
case date_constants_1.CalculateDates.TOMORROW:
calculatedDate = this.getTomorrow(format);
break;
case date_constants_1.CalculateDates.NEXT_MONTH:
calculatedDate = this.getNextMonth(format);
break;
case date_constants_1.CalculateDates.PREVIOUS_MONTH:
calculatedDate = this.getPreviousMonth(format);
break;
case date_constants_1.CalculateDates.NEXT_YEAR:
calculatedDate = this.getNextYear(format);
break;
case date_constants_1.CalculateDates.PREVIOUS_YEAR:
calculatedDate = this.getPreviousYear(format);
break;
default:
try {
calculatedDate = this.getSpecific(date, format);
}
catch (error) {
throw new Error("Function 'calculate' failed: Please provide a valid date string as first argument.");
}
}
return calculatedDate;
}
}
exports.DateModule = DateModule;
exports.default = new DateModule();
//# sourceMappingURL=date.js.map