UNPKG

read-gedcom

Version:
37 lines 1.25 kB
/** * Parses a time of format hours-minutes, optionally containing seconds and even centiseconds information. * @param value The value to parse * @category Value parsers */ export const parseExactTime = (value) => { // Note: Gedcom 5.5.5 says *no* leading zeros are allowed on hours. For compatibility purposes we *do* accept them anyway const rTime = /^(0?[0-9]|1[0-9]|2[0-3]):([0-5][0-9])(?::([0-5][0-9])(?:\.([0-9]{2}))?)?$/; if (!value) { return null; } const groups = rTime.exec(value); if (!groups) { return null; } const hours = parseInt(groups[1]); const minutes = parseInt(groups[2]); const hoursMinutes = { hours, minutes, }; if (groups[3] !== undefined) { const seconds = parseInt(groups[3]); const hoursMinutesSeconds = Object.assign(Object.assign({}, hoursMinutes), { seconds }); if (groups[4] !== undefined) { const centiseconds = parseInt(groups[4]); return Object.assign(Object.assign({}, hoursMinutesSeconds), { centiseconds }); } else { return hoursMinutesSeconds; } } else { return hoursMinutes; } }; //# sourceMappingURL=exacttime.js.map