alova
Version:
Request strategy library for MVVM libraries such as Vue.js, React.js and Svelte.js
2 lines (1 loc) • 848 B
JavaScript
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o(require("@alova/shared"),require("solid-js")):"function"==typeof define&&define.amd?define(["@alova/shared","solid-js"],o):(e="undefined"!=typeof globalThis?globalThis:e||self).solidHook=o(e.shared,e.Solid)}(this,(function(e,o){"use strict";return{name:"Solid",create:e=>o.createSignal(e),export:e=>e[0],dehydrate:e=>e[0](),update:(e,o)=>{o[1](e)},effectRequest:({handler:t,removeStates:n,immediate:a,watchingStates:r=[]})=>{o.onCleanup(n),a&&t(),e.forEach(r,((e,n)=>{o.createEffect(o.on(e,(()=>{t(n)}),{defer:!0}))}))},computed:t=>[o.createMemo(t),e.noop],watch:(t,n)=>{const a=Array.isArray(t)?t:[t],r=e.createSyncOnceRunner();o.createEffect(o.on(a.map((e=>e)),(()=>r((()=>{n()}))),{defer:!0}))},onMounted:e=>{o.onMount(e)},onUnmounted:e=>{o.onCleanup(e)}}}));