dotnet-format
Version:
📝 Pretty accurate port of awesome .NET formatting operations for JS environment
2 lines • 6.13 kB
JavaScript
(()=>{"use strict";var t,r=(t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)},function(r,e){function n(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)});const e=function(t){function e(r){return t.call(this,r||e.defaultMessage)||this}return r(e,t),e.defaultMessage="Input string was not in a correct format.",e}(Error);const n=function(){function t(){}return t.prototype.format=function(t,r,n){var o=this._cast(t);if(!r)return o.toString();if("string"!=typeof r)throw new e;return this._format(o,r,n||"default")},t}();function o(t,r){for(var e=t[r],n=r+1;n<t.length&&t[n]===e;)++n;return n-r}var a=function(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var n,o,a=e.call(t),i=[];try{for(;(void 0===r||r-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(e=a.return)&&e.call(a)}finally{if(o)throw o.error}}return i},i=function(){for(var t=[],r=0;r<arguments.length;r++)t=t.concat(a(arguments[r]));return t},c=new Map([["d",{day:"2-digit",month:"2-digit",year:"numeric"}],["D",{day:"2-digit",month:"long",year:"numeric",weekday:"long"}],["f",{day:"2-digit",month:"long",year:"numeric",weekday:"long",hour:"2-digit",minute:"2-digit"}],["F",{day:"2-digit",month:"long",year:"numeric",weekday:"long",hour:"2-digit",minute:"2-digit",second:"2-digit"}],["g",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit"}],["G",{day:"2-digit",month:"2-digit",year:"numeric",hour:"2-digit",minute:"2-digit",second:"2-digit"}],["m",{day:"numeric",month:"long"}],["M",{day:"numeric",month:"long"}],["t",{hour:"2-digit",minute:"2-digit"}],["T",{hour:"2-digit",minute:"2-digit",second:"2-digit"}],["U",{day:"2-digit",month:"long",year:"numeric",weekday:"long",hour:"2-digit",minute:"2-digit",second:"2-digit",timeZone:"UTC"}],["y",{year:"numeric",month:"long"}],["Y",{year:"numeric",month:"long"}]]),u=new Map([["o","yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz"],["O","yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fffffffzzz"],["r","ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"],["R","ddd, dd MMM yyyy HH':'mm':'ss 'GMT'"],["s","yyyy'-'MM'-'dd'T'HH':'mm':'ss"],["u","yyyy'-'MM'-'dd HH':'mm':'ss'Z'"]]),s=(i(c.keys(),u.keys()).sort((function(t,r){return t.toLowerCase()===r.toLowerCase()?r.charCodeAt(0)-t.charCodeAt(0):t.toLowerCase().charCodeAt(0)-r.toLowerCase().charCodeAt(0)})),[":","/","."]),f=function(){var t=function(r,e){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)Object.prototype.hasOwnProperty.call(r,e)&&(t[e]=r[e])})(r,e)};return function(r,e){function n(){this.constructor=r}t(r,e),r.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}}(),d=function(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var n,o,a=e.call(t),i=[];try{for(;(void 0===r||r-- >0)&&!(n=a.next()).done;)i.push(n.value)}catch(t){o={error:t}}finally{try{n&&!n.done&&(e=a.return)&&e.call(a)}finally{if(o)throw o.error}}return i};var y=new(function(t){function r(){return null!==t&&t.apply(this,arguments)||this}return f(r,t),r.prototype._cast=function(t){if(t instanceof Date||"bigint"==typeof t||"symbol"==typeof t||(t=new Date(t)),!(t instanceof Date)||isNaN(t.getTime()))throw new Error("Invalid date.");return t},r.prototype._format=function(t,r,e){return(null!=r?r:"").length<=1?this._formatStandard(t,r,e):this._formatCustom(t,r,e)},r.prototype._formatStandard=function(t,r,n){if(c.has(r))return t.toLocaleString(n,c.get(r));if(u.has(r))return this._formatCustom(t,u.get(r),n);throw new e},r.prototype._formatCustom=function(t,r,n){for(var a,i="",c=function(c,f){var y,g=r[c];switch(f=1,g){case"d":switch(f=o(r,c)){case 1:case 2:i+=t.getDate().toString().padStart(f,"0");break;case 3:i+=t.toLocaleString(n,{weekday:"short"});break;default:i+=t.toLocaleString(n,{weekday:"long"})}break;case"f":case"F":f=o(r,c);var l=Math.floor(t.getMilliseconds()*Math.pow(10,f-3));(l||"F"!==g)&&(i+=l.toString().padEnd(f,"0"));break;case"g":f=o(r,c),i+=t.toLocaleString(n,{era:"short",weekday:"short"}).split(" ").slice(0,-1).join(" ");break;case"h":f=o(r,c),i+=(t.getHours()%12||12).toString().padStart(Math.min(f,2),"0");break;case"H":f=o(r,c),i+=t.getHours().toString().padStart(Math.min(f,2),"0");break;case"K":case"z":f=o(r,c);var h=-1*t.getTimezoneOffset(),m=Math.abs(Math.floor(h/60)),p=Math.abs(h%60);i+="K"===g||f>=3?(h<0?"-":"+")+m.toString().padStart(2,"0")+":"+p.toString().padStart(2,"0"):(h<0?"-":"+")+m.toString().padStart(f,"0");break;case"m":f=o(r,c),i+=t.getMinutes().toString().padStart(Math.min(f,2),"0");break;case"M":switch(f=o(r,c)){case 1:case 2:i+=(t.getMonth()+1).toString().padStart(f,"0");break;case 3:i+=t.toLocaleString(n,{month:"short"});break;default:i+=t.toLocaleString(n,{month:"long"})}break;case"s":f=o(r,c),i+=t.getSeconds().toString().padStart(Math.min(f,2),"0");break;case"t":f=o(r,c);var w=t.getHours()<=12?"AM":"PM";i+=1===f?w[0]:w;break;case"y":f=o(r,c);var S=t.getFullYear();f<3&&(S%=100),i+=S.toString().padStart(f,"0");break;case":":f=1;var M=t.toLocaleString(n,{hour:"numeric",minute:"numeric"});i+=null!==(y=s.find((function(t){return M.includes(t)})))&&void 0!==y?y:":";break;case"/":f=1;var b=t.toLocaleString(n,{day:"numeric",month:"numeric",year:"numeric"});i+=s.find((function(t){return b.includes(t)}))||"/";break;case"%":if(c===r.length-1||"%"===r[c+1])throw new e;f=2,i+=u._formatCustom(t,r[c+1],n);break;case"\\":if(c===r.length-1)throw new e;f=2,i+=r[c+1];break;case"'":case'"':var k;f=(y=d(function(t,r){for(var n=r,o=t[n++],a="";n<t.length;){var i=t[n++];if(i===o)break;if("\\"===i){if(n===t.length-1)throw new e;a+=t[n++]}else a+=i}if(t[n-1]!==o)throw new e;return[n-r,a]}(r,c),2))[0],k=y[1],i+=k;break;default:f=1,i+=g}a=f},u=this,f=0,y=1;f<r.length;f+=y)c(f,y),y=a;return i},r}(n)),g=Date.prototype.toString;Date.prototype.toString=function(t,r){return t?y.format(this,t,r):g.apply(this)}})();
//# sourceMappingURL=toString.js.map