@rsc-labs/medusa-documents
Version:
Generate documents from Medusa
54 lines (53 loc) • 1.87 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.formatDateFilter = exports.relativeDateFormatToTimestamp = exports.addHours = exports.atMidnight = void 0;
const moment_1 = __importDefault(require("moment"));
const atMidnight = (date) => {
const result = (0, moment_1.default)(date);
if (!moment_1.default.isMoment(result)) {
console.log("date is not instance of Moment: ", date);
return null;
}
result.hour(0);
result.minute(0);
result.second(0);
result.millisecond(0);
return result;
};
exports.atMidnight = atMidnight;
const addHours = (date, hours) => {
var _a;
return (_a = (0, moment_1.default)(date)) === null || _a === void 0 ? void 0 : _a.add(hours, "hours");
};
exports.addHours = addHours;
/**
* The format is: [gt]=number|option
* e.g: [gt]=2|days
* @param {*} value
*/
const relativeDateFormatToTimestamp = (value) => {
const [count, option] = value.split("|");
// relative days are always subtract
let date = (0, moment_1.default)();
date.subtract(parseInt(count), option);
date = (0, exports.atMidnight)(date);
const result = `${date.format("X")}`;
return result;
};
exports.relativeDateFormatToTimestamp = relativeDateFormatToTimestamp;
// Takes in a value from the date picker e.g. 42|days or a timestamp
const formatDateFilter = (filter) => {
return Object.entries(filter).reduce((acc, [key, value]) => {
if (typeof value === 'string' && value.includes("|")) {
acc[key] = (0, exports.relativeDateFormatToTimestamp)(value);
}
else {
acc[key] = value;
}
return acc;
}, {});
};
exports.formatDateFilter = formatDateFilter;