match-iz
Version:
A tiny pattern-matching library in the style of the TC39 proposal
8 lines (7 loc) • 5.4 kB
JavaScript
/*
* match-iz
* v5.0.7
* https://github.com/shuckster/match-iz
* License: MIT
*/
var it=Object.create;var y=Object.defineProperty;var rt=Object.getOwnPropertyDescriptor;var at=Object.getOwnPropertyNames;var ct=Object.getPrototypeOf,Tt=Object.prototype.hasOwnProperty;var gt=(t,e)=>{for(var n in e)y(t,n,{get:e[n],enumerable:!0})},b=(t,e,n,c)=>{if(e&&typeof e=="object"||typeof e=="function")for(let g of at(e))!Tt.call(t,g)&&g!==n&&y(t,g,{get:()=>e[g],enumerable:!(c=rt(e,g))||c.enumerable});return t};var Ct=(t,e,n)=>(n=t!=null?it(ct(t)):{},b(e||!t||!t.__esModule?y(n,"default",{value:t,enumerable:!0}):n,t)),Ut=t=>b(y({},"__esModule",{value:!0}),t);var ne={};gt(ne,{inDay:()=>nt,inDays:()=>Zt,inMonth:()=>st,inMonths:()=>te,inTheFuture:()=>Kt,inTheNext:()=>Kt,inThePast:()=>Gt,inYear:()=>ot,inYears:()=>ee,isAM:()=>_,isAfter:()=>Xt,isAfternoon:()=>jt,isApr:()=>At,isAug:()=>Ot,isBefore:()=>Vt,isDay:()=>B,isDayOfWeek:()=>Pt,isDec:()=>Jt,isEvening:()=>zt,isFeb:()=>St,isFri:()=>mt,isHour:()=>m,isJan:()=>It,isJul:()=>Wt,isJun:()=>Nt,isLeapYear:()=>Lt,isMar:()=>bt,isMay:()=>kt,isMinute:()=>Rt,isMon:()=>ut,isMonth:()=>R,isMorning:()=>qt,isNov:()=>Et,isOct:()=>Ht,isPM:()=>$t,isSat:()=>pt,isSecond:()=>_t,isSep:()=>vt,isSun:()=>Dt,isThu:()=>lt,isTime:()=>u,isTue:()=>ht,isWed:()=>Mt,isWeekNumber:()=>Bt,isYear:()=>M,nthFri:()=>Ft,nthMon:()=>xt,nthSat:()=>Yt,nthSun:()=>yt,nthThu:()=>dt,nthTue:()=>wt,nthWed:()=>ft});module.exports=Ut(ne);var d=Ct(require("match-iz"),1);var A=require("match-iz"),i=t=>e=>(0,A.isDate)(e)&&t(e),k=t=>(e,n)=>n===t,N=t=>(e,n,c)=>n===c.length+t;function*D(t,e){for(let n=t;n<=e;n++)yield n}var h=t=>e=>(...n)=>new Date(new Date(t)[`set${e}`](...n));var{match:x,against:T,when:s,otherwise:O}=d,{allOf:w,anyOf:F,every:v,inRange:U,lt:H,gt:E,eq:r}=d,{isArray:l,isDate:J,isFunction:C,isNumber:o}=d,L=t=>h(t)("UTCMonth")(t.getUTCMonth()+1,0).getUTCDate(),W=t=>{let e=h(t)("UTCDate")(t.getUTCDate()+4-(t.getUTCDay()||7)),n=h(t)("UTCMonth")(0,1);return Math.ceil(((+e-+n)/864e5+1)/7)},[Dt,ut,ht,Mt,lt,mt,pt]=[...D(0,6)].map(t=>i(e=>e.getUTCDay()===t)),[yt,xt,wt,ft,dt,Ft,Yt]=[...D(0,6)].map(t=>e=>i(n=>[...D(1,L(n))].map(h(n)("UTCDate")).filter(c=>c.getUTCDay()===t).filter(e<0?N(e):k(e-1)).filter(w(B(n.getUTCDate()),R(n.getUTCMonth()+1),M(n.getUTCFullYear()))).map(c=>c.getUTCDate()).includes(n.getUTCDate()))),P=t=>i(e=>e.getUTCMonth()===t),[It,St,bt,At,kt,Nt]=[...D(0,5)].map(P),[Wt,Ot,vt,Ht,Et,Jt]=[...D(6,11)].map(P),B=T(s(C)(t=>i(e=>t(e.getUTCDate()))),s(o)(t=>t<0?i(e=>e.getUTCDate()===L(e)+t+1):i(e=>e.getUTCDate()===t))),R=T(s(C)(t=>i(e=>t(e.getUTCMonth()+1))),s(o)(t=>i(e=>e.getUTCMonth()===t-1))),M=T(s(C)(t=>i(e=>t(e.getUTCFullYear()))),s(o)(t=>i(e=>e.getUTCFullYear()===t))),Lt=i(F(M(t=>t%400===0),w(M(t=>t%4===0),M(t=>t%100!==0)))),Pt=T(s(C)(t=>i(e=>t(e.getUTCDay()))),s(o)(t=>i(e=>e.getUTCDay()===t))),Bt=T(s(C)(t=>i(e=>t(W(e)))),s(o)(t=>i(e=>W(e)===t))),m=T(s(C)(t=>i(e=>t(e.getUTCHours()))),s(o)(t=>i(e=>e.getUTCHours()===t))),Rt=T(s(C)(t=>i(e=>t(e.getUTCMinutes()))),s(o)(t=>i(e=>e.getUTCMinutes()===t))),_t=T(s(C)(t=>i(e=>t(e.getUTCSeconds()))),s(o)(t=>i(e=>e.getUTCSeconds()===t))),_=m(U(0,11)),$t=m(U(12,23)),qt=_,jt=m(U(12,17)),zt=m(U(18,23)),u=T(s(C)(t=>i(e=>t(e.getTime()))),s(o)(t=>i(e=>e.getTime()===t))),a=t=>([e])=>{let n=Date.now();return u(U(n,n+e*t-1))},$=1,Y=1e3,I=60*Y,S=60*I,p=24*S,q=7*p,j=30*p,z=365*p,G=/^(ms|milliseconds?)/i,K=/^(s|secs?|seconds?)/i,Q=/^(m|mins?|minutes?)$/i,V=/^(h|hours?)/i,X=/^(d|days?)/i,Z=/^(w|weeks?)/i,tt=/^(mo|months?)/i,et=/^(y|years?)/i,Gt=(...t)=>x(t)(s(r([]))(()=>u(H(Date.now()))),s(r([o,G]))(a(-$)),s(r([o,K]))(a(-Y)),s(r([o,Q]))(a(-I)),s(r([o,V]))(a(-S)),s(r([o,X]))(a(-p)),s(r([o,Z]))(a(-q)),s(r([o,tt]))(a(-j)),s(r([o,et]))(a(-z)),O(()=>{throw new Error("inThePast: invalid arguments")})),Kt=(...t)=>x(t)(s(r([]))(()=>u(E(Date.now()))),s(r([o,G]))(a($)),s(r([o,K]))(a(Y)),s(r([o,Q]))(a(I)),s(r([o,V]))(a(S)),s(r([o,X]))(a(p)),s(r([o,Z]))(a(q)),s(r([o,tt]))(a(j)),s(r([o,et]))(a(z)),O(()=>{throw new Error("inTheNext/inTheFuture: invalid arguments")})),f=t=>x(t)(s(F(J,o))(e=>new Date(e)),s(r([o]))(([e])=>new Date(Date.UTC(e,0,1))),s(r([o,o]))(([e,n])=>new Date(Date.UTC(e,n-1,1))),s(w(l,{length:U(3,7)},v(o)))(([e,n,c,...g])=>new Date(Date.UTC(e,n-1,c,...g)))),Qt=t=>x(t)(s(F(J,o))(e=>new Date(e)),s(r([o]))(([e])=>new Date(Date.UTC(e+1,0,0))),s(r([o,o]))(([e,n])=>new Date(Date.UTC(e,n,0))),s(r([o,o,o]))(([e,n,c])=>new Date(Date.UTC(e,n-1,c))),s(w(l,{length:U(4,7)},v(o)))(([e,n,c,...g])=>new Date(Date.UTC(e,n-1,c,...g)))),Vt=t=>u(H(f(t))),Xt=t=>u(E(Qt(t))),nt=t=>{let e=f(t);return i(n=>n.getUTCFullYear()===e.getUTCFullYear()&&n.getUTCMonth()===e.getUTCMonth()&&n.getUTCDate()===e.getUTCDate())},st=t=>{let e=f(t);return i(n=>n.getUTCFullYear()===e.getUTCFullYear()&&n.getUTCMonth()===e.getUTCMonth())},ot=t=>{let e=f(t);return i(n=>n.getUTCFullYear()===e.getUTCFullYear())},Zt=T(s(l)(t=>e=>t.some(n=>nt(n)(e)))),te=T(s(l)(t=>e=>t.some(n=>st(n)(e)))),ee=T(s(l)(t=>e=>t.some(n=>ot(n)(e))));0&&(module.exports={inDay,inDays,inMonth,inMonths,inTheFuture,inTheNext,inThePast,inYear,inYears,isAM,isAfter,isAfternoon,isApr,isAug,isBefore,isDay,isDayOfWeek,isDec,isEvening,isFeb,isFri,isHour,isJan,isJul,isJun,isLeapYear,isMar,isMay,isMinute,isMon,isMonth,isMorning,isNov,isOct,isPM,isSat,isSecond,isSep,isSun,isThu,isTime,isTue,isWed,isWeekNumber,isYear,nthFri,nthMon,nthSat,nthSun,nthThu,nthTue,nthWed});