section-2
Version:
A library for calculating unsocial hours entitlements under the NHS agenda for change's section 2
33 lines (32 loc) • 1.57 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isBankHoliday = exports.calculateShiftHours = exports.calculateShiftLength = exports.calculateBreak = void 0;
const conversions_1 = require("./conversions");
const formatDates_1 = require("./formatDates");
const bankHolidays_1 = __importDefault(require("../data/bankHolidays"));
const calculateBreak = (shiftLengthMs, break_override) => break_override === null || break_override === undefined
? shiftLengthMs > 21600000
? 1800000
: 0
: break_override;
exports.calculateBreak = calculateBreak;
const calculateShiftLength = (from, to) => {
return (0, conversions_1.convertToNumber)(to) - (0, conversions_1.convertToNumber)(from);
};
exports.calculateShiftLength = calculateShiftLength;
const calculateShiftHours = (from, to, breakOverrideMs = null) => {
const shiftLength = (0, exports.calculateShiftLength)(from, to);
if (breakOverrideMs === null || breakOverrideMs === undefined) {
return shiftLength > 21600000 ? shiftLength - 1800000 : shiftLength;
}
return Math.max(shiftLength - breakOverrideMs, 0);
};
exports.calculateShiftHours = calculateShiftHours;
const isBankHoliday = (date) => {
const lookupDate = (0, formatDates_1.formatDate)(date, "sorting");
return bankHolidays_1.default["england-and-wales"].some((bh) => bh === lookupDate);
};
exports.isBankHoliday = isBankHoliday;