UNPKG

atriusmaps-node-sdk

Version:

This project provides an API to Atrius Personal Wayfinder maps within a Node environment. See the README.md for more information

2 lines (1 loc) 1.97 kB
import*as e from"ramda";const t=(e,t,r)=>i=>{const a=i.properties.id,o=t[a],n=r[a];if(o){const{queueTime:t,isTemporarilyClosed:r}=o,a=r?e("ui:Closed"):e("ui:_xx_ minute wait",{count:t});i.properties.text=`${n}\n${a}`}return i},r=(e,t,r)=>e=>{const i=e.properties?.id,a=void 0!==i&&t?.[String(i)];if(!a)return e;const{name:o}=a;if(null===o){const t=r?.[String(i)];t&&(e.properties.text=t)}else e.properties.text=o;return e},i=t=>e.pipe(e.filter(e=>"parking"===e.category),e.map(t=>{const r=t.dynamicAttributes;if(!r)throw Error(`No dynamicAttributes defined for parking POI ${t.poiId}`);const i=(Date.now()-t.timestamp)/1e3,a={...void 0!==t.currencyCode&&{currencyCode:t.currencyCode},...void 0!==t.currencySymbol&&{currencySymbol:t.currencySymbol}};return{...i<r["parking.timeToLive"]?{...e.pick(["lotStatus","rateDay","rateHour","timeIsReal","timeToTerminal1","timeToTerminal2"],t),...a}:{lotStatus:r["parking.default"],rateDay:`${t.currencySymbol??"$"} -`,rateHour:`${t.currencySymbol??"$"} -`,timeIsReal:!1,...a},lastUpdated:t.timestamp,lotName:t.lotName}}))(t),a=t=>{const r=["dynamicData","openClosed"],i=e.filter(e.hasPath(r),t),a=e.map(e.path(r),i);if(e.all(e.both(e.has("isOpen"),e.has("expiration")),e.values(a))){const t=e.pipe(e.prop("expiration"),e.lt(Date.now()));return e.filter(t,a)}throw Error("Open Closed poi status is malformed.")},o=t=>{const r=["dynamicData","queue"],i=e.filter(e.hasPath(r),t),a=e.map(e.path(r),i);return e.map(e=>({isTemporarilyClosed:e.isTemporarilyClosed,queueTime:e.queueTime,timeIsReal:!e.isQueueTimeDefault&&e.expiration>Date.now(),lastUpdated:Date.now()}),a)},n=t=>{const r=Date.now();return e.filter(t=>{const i=e.path(["dynamicData","dynamic-routing","navGraphHidden"],t),a=e.path(["dynamicData","dynamic-routing","expiration"],t);return!0===i&&a>r},t)};export{r as mutatePoiName,t as mutateSecurityCheckpointLabel,a as processOpenClosedPois,i as processParkingPOIS,n as processRoutingPois,o as processSecurityWaitTimes};