UNPKG

saldo

Version:

Portuguese salary calculator library

47 lines (46 loc) 2.09 kB
import { VALID_PERIODS } from "../config/schemas"; export const validateNumberOfHolders = (numberOfHolders) => { if (numberOfHolders !== null && numberOfHolders !== undefined && (numberOfHolders !== 1 && numberOfHolders !== 2)) { throw new Error("'numberOfHolders' must be null, undefined, 1 or 2"); } }; export const validateMarriedAndNumberOfHolders = (married, numberOfHolders) => { if (!married) { return; } if (married && (numberOfHolders === null || numberOfHolders === undefined)) { throw new Error("'numberOfHolders' is required for married workers"); } if (married && numberOfHolders !== 1 && numberOfHolders !== 2) { throw new Error("'numberOfHolders' must be 1 or 2 for married workers"); } }; export const validatePartnerDisabled = (married, partnerDisabled) => { if (!married && partnerDisabled) { throw new Error("'partnerDisabled' is not allowed for single workers"); } }; export const validateDependents = (numberOfDependents, numberOfDependentsDisabled) => { /** * Validate the number of dependents and the number of dependents disabled. */ if (numberOfDependentsDisabled === null || numberOfDependentsDisabled === undefined) { return; } if (numberOfDependents === null || numberOfDependents === undefined) { throw new Error("'numberOfDependents' is required when 'numberOfDependentsDisabled' is provided"); } if (numberOfDependentsDisabled > numberOfDependents) { throw new Error("'numberOfDependentsDisabled' must be less than or equal to 'numberOfDependents'"); } }; export const validateLunchAllowanceMode = (lunchAllowanceMode) => { if (lunchAllowanceMode !== "cupon" && lunchAllowanceMode !== "salary") { throw new Error(`'lunchAllowanceMode' must be 'cupon' or 'salary'. Provided: ${lunchAllowanceMode}`); } }; export const validatePeriod = (period) => { if (!VALID_PERIODS.includes(period)) { throw new Error(`'period' must be one of ${VALID_PERIODS.join(', ')}. Provided: ${period}`); } };