UNPKG

jsx-slack

Version:

Build JSON object for Slack Block Kit surfaces from JSX

2 lines (1 loc) 1.58 kB
const y=["January","February","March","April","May","June","July","August","September","October","November","December"],i=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],c=["th","st","nd","rd"],_=e=>{const s=e%100;return`${e}${c[(s-20)%10]||c[s]||c[0]}`};function D(e,s){const l=(r=!1)=>{let t=y[e.getUTCMonth()];r&&(t=t.slice(0,3));let a=e.getUTCDate();return r||(a=_(a)),`${t} ${a}, ${e.getUTCFullYear()}`},$=(r=!1)=>{const t=`${e.getUTCHours()}`.padStart(2,"0"),a=`${e.getUTCMinutes()}`.padStart(2,"0"),d=e.getUTCHours()>=12?"PM":"AM";if(!r)return`${t}:${a} ${d}`;const o=`${e.getUTCSeconds()}`.padStart(2,"0");return`${t}:${a}:${o} ${d}`},u=r=>{const t=new Date,a=t.getUTCFullYear(),d=t.getUTCMonth(),o=t.getUTCDate(),C=Date.UTC(a,d,o-1,0,0,0),p=Date.UTC(a,d,o,0,0,0),T=Date.UTC(a,d,o+1,0,0,0),U=Date.UTC(a,d,o+2,0,0,0)-1,g=e.getTime();let n="";return C<=g&&g<p&&(n="yesterday"),p<=g&&g<T&&(n="today"),T<=g&&g<=U&&(n="tomorrow"),n&&r&&(n=`${n.slice(0,1).toUpperCase()}${n.slice(1)}`),n};return s.replace(/{date_num}/g,()=>{const r=`${e.getUTCFullYear()}`.padStart(4,"0"),t=`${e.getUTCMonth()+1}`.padStart(2,"0"),a=`${e.getUTCDate()}`.padStart(2,"0");return`${r}-${t}-${a}`}).replace(/{date_pretty}/g,(r,t)=>u(t===0)||"{date}").replace(/{date_short_pretty}/g,(r,t)=>u(t===0)||"{date_short}").replace(/{date_long_pretty}/g,(r,t)=>u(t===0)||"{date_long}").replace(/{date}/g,()=>l()).replace(/{date_short}/g,()=>l(!0)).replace(/{date_long}/g,()=>`${i[e.getUTCDay()]}, ${l()}`).replace(/{time}/g,()=>$()).replace(/{time_secs}/g,()=>$(!0))}export{D as default};