@minimaltech/node-infra
Version:
Minimal Technology NodeJS Infrastructure - Loopback 4 Framework
77 lines (75 loc) • 3.03 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.dayjs = exports.hrTime = exports.getDateTz = exports.getNextWeekday = exports.getPreviousWeekday = exports.isWeekday = exports.sleep = void 0;
const dayjs_1 = __importDefault(require("dayjs"));
exports.dayjs = dayjs_1.default;
const customParseFormat_1 = __importDefault(require("dayjs/plugin/customParseFormat"));
const isoWeek_1 = __importDefault(require("dayjs/plugin/isoWeek"));
const timezone_1 = __importDefault(require("dayjs/plugin/timezone"));
const utc_1 = __importDefault(require("dayjs/plugin/utc"));
const weekday_1 = __importDefault(require("dayjs/plugin/weekday"));
const parse_utility_1 = require("./parse.utility");
dayjs_1.default.extend(customParseFormat_1.default);
dayjs_1.default.extend(utc_1.default);
dayjs_1.default.extend(timezone_1.default);
dayjs_1.default.extend(weekday_1.default);
dayjs_1.default.extend(isoWeek_1.default);
const tz = (_a = process.env.APP_ENV_APPLICATION_TIMEZONE) !== null && _a !== void 0 ? _a : 'Asia/Ho_Chi_Minh';
dayjs_1.default.tz.setDefault(tz);
const sleep = (ms) => {
return new Promise(resolve => setTimeout(resolve, ms));
};
exports.sleep = sleep;
const isWeekday = (date) => {
var _a;
const isoWeekday = (_a = (0, dayjs_1.default)(date)) === null || _a === void 0 ? void 0 : _a.isoWeekday();
return isoWeekday > 0 && isoWeekday < 6;
};
exports.isWeekday = isWeekday;
/* export const getPreviousWeekday = () => {
let date = dayjs();
while (!isWeekday(date)) {
date = date.subtract(1, 'day');
}
return date;
}; */
const getPreviousWeekday = (opts) => {
const { date } = opts !== null && opts !== void 0 ? opts : { date: (0, dayjs_1.default)() };
let rs = (0, dayjs_1.default)(date).clone().subtract(1, 'day');
while (!(0, exports.isWeekday)(rs.toISOString())) {
rs = rs.subtract(1, 'day');
}
return rs;
};
exports.getPreviousWeekday = getPreviousWeekday;
/* export const getNextWeekday = () => {
let date = dayjs();
while (!isWeekday(date)) {
date = date.add(1, 'day');
}
return date;
}; */
const getNextWeekday = (opts) => {
const { date } = opts !== null && opts !== void 0 ? opts : { date: (0, dayjs_1.default)() };
let rs = (0, dayjs_1.default)(date).clone().add(1, 'day');
while (!(0, exports.isWeekday)(rs.toISOString())) {
rs = rs.add(1, 'day');
}
return rs;
};
exports.getNextWeekday = getNextWeekday;
const getDateTz = (opts) => {
const { date, timezone, useClientTz = false, timeOffset = 0 } = opts;
return (0, dayjs_1.default)(date).tz(timezone, useClientTz).add(timeOffset, 'hour');
};
exports.getDateTz = getDateTz;
const hrTime = () => {
const curr = process.hrtime();
return (0, parse_utility_1.float)(curr[0] + curr[1] / Math.pow(10, 9), 9);
};
exports.hrTime = hrTime;
//# sourceMappingURL=date.utility.js.map