likescheme
Version:
likescheme is a plain Javascript implementation of the functional prefix-notation Scheme-like interpreted language
1 lines • 4.19 kB
JavaScript
(()=>{var e={644:e=>{var r=!0;const o=(e,r)=>{if(void 0===r)return;if(r instanceof Array){var t=[];return r.forEach(((r,a)=>{t.push(o(e,r))})),t}const a=e.split(".");return a.length>1?o(a.slice(1).join("."),r[a[0]]):r[a[0]]},t=e=>e instanceof Array,a={var:(e,t)=>{const a=o(e[0],t);if(void 0===a&&r)throw`Unknown data attribute ${e[0]}`;return a},$:(e,r)=>a.var(e,r),get:(e,r)=>a.var(e,r),list:e=>e,undefined:()=>{},true:()=>!0,false:()=>!1,null:()=>null,isundefined:(e,r)=>void 0===e[0]||void 0===o(e[0],r),low:e=>e.map((e=>e&&"string"==typeof e?e.toLowerCase():e)),eq:e=>e[0]===e[1],veq:(e,r)=>a.var([e[0]],r)===e[1],ne:e=>e[0]!==e[1],vne:(e,r)=>a.var([e[0]],r)!==e[1],ge:e=>e[0]>=e[1],vge:(e,r)=>a.var([e[0]],r)>=e[1],gt:e=>e[0]>e[1],vgt:(e,r)=>a.var([e[0]],r)>e[1],le:e=>e[0]<=e[1],vle:(e,r)=>a.var([e[0]],r)<=e[1],lt:e=>e[0]<e[1],vlt:(e,r)=>a.var([e[0]],r)<e[1],in:e=>Array.isArray(e[0])?e[0].some((r=>e[1].includes(r))):e[1].includes(e[0]),vin:(e,r)=>a.in([a.var(e,r),e[1]]),bw:e=>Array.isArray(e[0])?e[0].some((r=>e[1]<=r&&r<=e[2])):e[1]<=e[0]&&e[0]<=e[2],or:e=>e.some((e=>e)),and:e=>e.every((e=>e)),not:e=>!e[0],isy:(e,r)=>{return!0===(o=a.var(e,r))||"string"==typeof o&&["yes","y","true"].includes(o.toLowerCase());var o},isyu:(e,r)=>{return!0===(o=a.var(e,r))||"string"==typeof o&&["yes","y","na","true"].includes(o.toLowerCase());var o},isn:(e,r)=>{return!1===(o=a.var(e,r))||"string"==typeof o&&["n","no","false"].includes(o.toLowerCase());var o},isnu:(e,r)=>{return!1===(o=a.var(e,r))||"string"==typeof o&&["n","no","na","false"].includes(o.toLowerCase());var o},isu:(e,r)=>{return"string"==typeof(o=a.var(e,r))&&["na"].includes(o.toLowerCase());var o},j:e=>a.join(e),join:e=>t(e[0])?e[0].join(e[1]):void 0,split:e=>t(e[0])?[].concat(...e[0].map((r=>r.split(e[1])))):e[0].split(e[1]),uniq:e=>t(e[0])?Array.from(new Set(e[0])):e[0],usort:e=>t(e[0])?a.uniq(e).sort():e[0],lindex:e=>t(e[0])?e[0][e[1]]:void 0,lrange:e=>t(e[0])?e[0].slice(e[1],e[2]):void 0,len:e=>e[0].length,days:e=>e[0]&&e[1]?Math.floor((new Date(e[1])-new Date(e[0]))/864e5):void 0,vdays:(e,r)=>a.days([a.var([e[0]],r),a.var([e[1]],r)]),today:()=>(new Date).toISOString().slice(0,10),sub:e=>e[0]-e[1],div:e=>e[1]?e[0]/e[1]:void 0,rem:e=>e[1]?e[0]%e[1]:void 0,neg:e=>t(e[0])?e[0].map((e=>-1*e)):-1*e[0],inv:e=>t(e[0])?e[0].map((e=>e?1/e:void 0)):e[0]?1/e[0]:void 0,mult:e=>t(e[0])?e[0].filter((e=>null!=e)).reduce(((e,r)=>(void 0===e?1:e)*r),void 0):void 0,sum:e=>t(e[0])?e[0].filter((e=>null!=e)).reduce(((e,r)=>(void 0===e?0:e)+r),void 0):void 0,min:e=>t(e[0])?e[0].filter((e=>void 0!==e)).reduce(((e,r)=>e<r?e:r),void 0):void 0,max:e=>t(e[0])?e[0].filter((e=>void 0!==e)).reduce(((e,r)=>e>r?e:r),void 0):void 0,map:e=>{return void 0===(r=Object.fromEntries(e[1].reduce(((e,r,o)=>(o%2?e[e.length-1].push(r):e.push([r]),e)),[]))[e[0]])?e[2]:r;var r}},n=(e,r)=>{const o=e.operator,t=e.args.reduce(((e,o)=>("object"!=typeof o||Array.isArray(o)||null===o?e.push(o):e.push(n(o,r)),e)),[]);if(void 0===a[o])throw`Unknown operation ${o}`;return a[o](t,r)},i=e=>JSON.parse(e.replace(/'([^']+)'/g,(e=>e.replace(/ /g,"%%_%%"))).replace(/\[([a-zA-Z\$]+)/g,"['$1'").replace(/'/g,'"').replace(/ /g,",").replace(/%%_%%/g," ")),s=(e,r)=>{const o=e[0],t=e.slice(1).reduce(((e,o)=>(Array.isArray(o)?e.push(s(o,r)):e.push(o),e)),[]);if(void 0===a[o])throw`Unknown operation ${o}`;return{operator:o,args:t}},v=e=>s(e);e.exports={_evaluate:(e,o={},t=!0)=>(r=t,"string"==typeof e?e=v(i(e)):Array.isArray(e)&&(e=v(e)),n(e,o)),_compile:v,_parse:i}}},r={};function o(t){var a=r[t];if(void 0!==a)return a.exports;var n=r[t]={exports:{}};return e[t](n,n.exports,o),n.exports}o.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return o.d(r,{a:r}),r},o.d=(e,r)=>{for(var t in r)o.o(r,t)&&!o.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},o.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),o.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var t={};(()=>{"use strict";o.r(t),o.d(t,{compile:()=>a,evaluate:()=>n,parse:()=>r});var e=o(644);const r=e._parse,a=e._compile,n=e._evaluate})(),module.exports=t})();