solid-use
Version:
A collection of SolidJS utilities
2 lines (1 loc) • 581 B
JavaScript
import{onCleanup as i}from"solid-js";var t;function T(r){let e=t;return(...n)=>{let o=t;t=e;try{return r(...n)}finally{t=o}}}function a(r){let e=t;t={parent:e,data:{}};try{return r()}finally{t=e}}var d=0;function p(r){return{id:d++,defaultValue:r}}function c(r,e){let n=t;n&&(n.data[r.id]={value:e},i(()=>{n.data[r.id]=void 0}))}function f(r){let e=t;for(;e;){let n=e.data[r.id];if(n)return n.value;e=e.parent}return r.defaultValue}function v(r){return e=>a(()=>r(e))}export{T as capturedProvider,p as createProvider,f as inject,c as provide,a as providerScope,v as withProvider};