UNPKG

time-number

Version:

Converts time representation from string to number or from number to string

1 lines 2.77 kB
module.exports=function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}var t={};return r.m=e,r.c=t,r.p="",r(0)}([function(e,r,t){e.exports=t(1)},function(e,r){"use strict";function t(e){return"time-number"===e.message.substring(0,11)}function n(e){for(var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:2,t=e.toString(),n=r-t.length,o="";o.length<n;)o+="0";return""+o+t}function o(e,r){var t=r.validate,o=r.format,a=r.leadingZero,i=parseInt(e,10);if(t&&(i<0||i>=86400))throw new RangeError("time-number, timeFromInt(): rangeError, value supposed to be between 0 and 86399");var u=Math.floor(i/3600),m=Math.floor((i-3600*u)/60),d=i-3600*u-60*m,s=null;12!==o&&"12"!==o||(s=u<12?"AM":"PM",0===u?u=12:u>12&&(u-=12));var f=[a?n(u):u,n(m)];d&&f.push(n(d));var l=f.join(":");return s?l+" "+s:l}function a(e){return"boolean"==typeof e?{validate:e}:e}function i(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={validate:!0,format:24,leadingZero:!0},i=Object.assign({},n,a(r)),u=i.validate;if(!u)return o(e,i);try{if(e-parseFloat(e,10)+1>=0)return o(e,i);throw new Error}catch(r){if(t(r))throw r;throw new Error("time-number, timeFromInt(): invalud value: '"+e+"', supposed to be number")}}function u(e,r){for(var t=r.validate,n=e.split(":"),o=n.length;n.length<3;)n.push("0");var a=n.map(function(e){return parseInt(e,10)});if(t){var i=a[0];if(i<0||i>23)throw new RangeError("time-number, timeToInt(): hours must be between 0 and 23, provided value: '"+e+"'");if(o>1){var u=a[1];if(u<0||u>59)throw new RangeError("time-number, timeToInt(): minutes must be between 0 and 59, provided value: '"+e+"'")}if(o>2){var m=a[2];if(m<0||m>59)throw new RangeError("time-number, timeToInt(): seconds must be between 0 and 59, provided value: '"+e+"'")}}return 3600*a[0]+60*a[1]+a[2]}function m(e){if(!e||!e.match)return e;if(!e.match(/(am|pm)$/i))return e;if(e.match(/^0+:/))throw new Error("12h format can't have 00:30 AM, it should be 12:30 AM instead");return e.match(/am$/i)?e.replace(/^(\d+)/,function(e){return"12"===e?"0":e}).replace(/\s*am$/i,""):e.replace(/^(\d+)/,function(e){return"12"===e?e:(parseInt(e,10)+12).toString()}).replace(/\s*pm$/i,"")}function d(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n={validate:!0},o=Object.assign({},n,a(r)),i=o.validate;if(!i){var d=m(e);return u(d,o)}try{var s=m(e);if(!s.match(/^\d+(:\d+(:\d+)?)?$/))throw new Error;return u(s,o)}catch(r){if(t(r))throw r;throw new Error("time-number, timeToInt(): supported formats are 'HH', 'HH:mm', 'HH:mm:ss', provided value: '"+e+"' doesn't match any of them")}}Object.defineProperty(r,"__esModule",{value:!0}),r.timeFromInt=i,r.timeToInt=d}]);