ws-dottie
Version:
Your friendly TypeScript companion for Washington State transportation APIs - WSDOT and WSF data with smart caching and React Query integration
3 lines • 3.81 kB
JavaScript
;var chunkJNSNORO6_js=require('./chunk-JNSNORO6.js'),chunkWV2LMCOC_js=require('./chunk-WV2LMCOC.js'),chunkXD2OIZAB_js=require('./chunk-XD2OIZAB.js'),reactQuery=require('@tanstack/react-query'),q=require('react');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var q__default=/*#__PURE__*/_interopDefault(q);exports.a=void 0;var I=chunkXD2OIZAB_js.a(()=>{exports.a={name:"wsf-fares",baseUrl:"https://www.wsdot.wa.gov/ferries/api/fares/rest"};});exports.c=void 0;var S=chunkXD2OIZAB_js.a(()=>{exports.c={name:"wsf-schedule",baseUrl:"https://www.wsdot.wa.gov/ferries/api/schedule/rest"};});exports.e=void 0;var E=chunkXD2OIZAB_js.a(()=>{exports.e={name:"wsf-terminals",baseUrl:"https://www.wsdot.wa.gov/ferries/api/terminals/rest"};});exports.g=void 0;var H=chunkXD2OIZAB_js.a(()=>{exports.g={name:"wsf-vessels",baseUrl:"https://www.wsdot.wa.gov/ferries/api/vessels/rest"};});function T(e,t){return {urlTemplate:`${e.baseUrl}${t.endpoint}`,endpoint:t.endpoint,inputSchema:t.inputSchema,outputSchema:t.outputSchema}}var k=chunkXD2OIZAB_js.a(()=>{});function u(e){let t=T(e.api,e.endpoint);return r=>chunkJNSNORO6_js.d({endpoint:t,...r})}var m=chunkXD2OIZAB_js.a(()=>{chunkJNSNORO6_js.e();k();});var _,L,K,W,j,V,f,l,D=chunkXD2OIZAB_js.a(()=>{chunkWV2LMCOC_js.e();I();S();E();H();chunkJNSNORO6_js.e();_=new Set(["wsf-fares","wsf-schedule","wsf-terminals","wsf-vessels"]),L={"wsf-fares":exports.a.baseUrl,"wsf-schedule":exports.c.baseUrl,"wsf-terminals":exports.e.baseUrl,"wsf-vessels":exports.g.baseUrl},K=e=>({urlTemplate:`${e}/cacheflushdate`,endpoint:"/cacheflushdate",inputSchema:chunkWV2LMCOC_js.c,outputSchema:chunkWV2LMCOC_js.d}),W=async(e,t="native")=>{let r=L[e];if(!r)throw new Error(`No base URL found for API: ${e}`);let s=await chunkJNSNORO6_js.d({endpoint:K(r),fetchMode:t,validate:false,logMode:"none"});return V(s)},j=e=>{let t=`fetchCacheFlushDate${e.replace("wsf-","").split("-").map(r=>r[0].toUpperCase()+r.slice(1)).join("")}`;return `${e}:${t}`},V=e=>e?e instanceof Date?e.toISOString():String(e):"",f=(e,t="native")=>{let r=_.has(e),s=r?j(e):"no-cache-flush";return reactQuery.useQuery({queryKey:[s,t],queryFn:r?()=>W(e,t):()=>Promise.resolve(""),refetchInterval:r?300*1e3:void 0,staleTime:r?300*1e3:void 0,refetchOnWindowFocus:false})},l=(e,t)=>{let r=reactQuery.useQueryClient(),s=q__default.default.useRef(null);q.useEffect(()=>{if(!t?.data)return;let o=t.data;s.current!==null&&s.current!==o&&r.invalidateQueries({queryKey:[e]}),s.current=o;},[t?.data,r,e]);};});var U=chunkXD2OIZAB_js.a(()=>{D();});var p,y=chunkXD2OIZAB_js.a(()=>{p={REALTIME:{staleTime:5e3,gcTime:36e5,refetchInterval:5e3,retry:2,retryDelay:5e3},FREQUENT:{staleTime:3e5,gcTime:36e5,refetchInterval:3e5,retry:3,retryDelay:5e3},MODERATE:{staleTime:36e5,gcTime:1728e5,refetchInterval:36e5,retry:3,retryDelay:6e4},STATIC:{staleTime:864e5,gcTime:1728e5,refetchInterval:864e5,retry:2,retryDelay:5e3}};});function F(e){let{apiName:t,endpointName:r,fetchFn:s,cacheStrategy:o}=e;return t.startsWith("wsf-")&&o==="STATIC"?(n,i)=>{let h=f(t,n?.fetchMode);return l(r,h),reactQuery.useQuery({queryKey:[r,n?.params??null],queryFn:()=>s(n),...p.STATIC,refetchOnWindowFocus:false,...i})}:(n,i)=>reactQuery.useQuery({queryKey:[r,n?.params??null],queryFn:()=>s(n),...p[o],refetchOnWindowFocus:false,...i})}var d=chunkXD2OIZAB_js.a(()=>{U();y();});function z(e){let{api:t,endpoint:r,getCacheStrategy:s}=e,o=u({api:t,endpoint:r});return {fetch:o,useHook:(n,i)=>{let h=s();return F({apiName:t.name,endpointName:r.functionName,fetchFn:o,cacheStrategy:h})(n,i)}}}var N=chunkXD2OIZAB_js.a(()=>{m();d();});var B=chunkXD2OIZAB_js.a(()=>{N();m();d();y();});
exports.b=I;exports.d=S;exports.f=E;exports.h=H;exports.i=z;exports.j=B;//# sourceMappingURL=chunk-GWRLC6BC.js.map
//# sourceMappingURL=chunk-GWRLC6BC.js.map