solid-use
Version:
A collection of SolidJS utilities
2 lines (1 loc) • 2.12 kB
JavaScript
;var p=Object.defineProperty;var R=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var y=(s,e)=>{for(var t in e)p(s,t,{get:e[t],enumerable:!0})},g=(s,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of h(e))!d.call(s,i)&&i!==t&&p(s,i,{get:()=>e[i],enumerable:!(n=R(e,i))||n.enumerable});return s};var T=s=>g(p({},"__esModule",{value:!0}),s);var q={};y(q,{SuspensefulFetchResponse:()=>c,SuspenselessFetchResponse:()=>f,default:()=>v});module.exports=T(q);var r=require("solid-js"),u=globalThis.fetch;function F(s){return typeof s=="function"}function o(s){return F(s)?s():s}var c=class{constructor(e,t){this.input=e,this.init=t}readResponse(){return[o(this.input),o(this.init)]}arrayBuffer(){return(0,r.createResource)(()=>this.readResponse(),async([e,t])=>(await u(e,t)).arrayBuffer())[0]}blob(){return(0,r.createResource)(()=>this.readResponse(),async([e,t])=>(await u(e,t)).blob())[0]}formData(){return(0,r.createResource)(()=>this.readResponse(),async([e,t])=>(await u(e,t)).formData())[0]}json(){return(0,r.createResource)(()=>this.readResponse(),async([e,t])=>(await u(e,t)).json())[0]}text(){return(0,r.createResource)(()=>this.readResponse(),async([e,t])=>(await u(e,t)).text())[0]}},l=class{constructor(e){this.source=e}get value(){return this.source().value}get status(){return this.source().status}};function a(s){let[e,t]=(0,r.createSignal)({status:"pending"});return(0,r.createEffect)(()=>{let n=s();t({status:"pending",value:n}),n.then(i=>{t({status:"success",value:i})},i=>{t({status:"failure",value:i})})}),new l(e)}var f=class{constructor(e,t){this.input=e,this.init=t}async readResponse(){return await u(o(this.input),o(this.init))}arrayBuffer(){return a(async()=>(await this.readResponse()).arrayBuffer())}blob(){return a(async()=>(await this.readResponse()).blob())}formData(){return a(async()=>(await this.readResponse()).formData())}json(){return a(async()=>(await this.readResponse()).json())}text(){return a(async()=>(await this.readResponse()).text())}};function S(s,e,t){return t?new c(s,e):new f(s,e)}var v=S;