reactjs-signal 2.0.1 → 2.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +26 -4
- package/dist/index.js +1 -1
- package/package.json +8 -8
package/dist/index.d.ts
CHANGED
|
@@ -137,14 +137,36 @@ declare function useSetSignal<T>(alienSignal: TWritableSignal<T>): (val: T | ((o
|
|
|
137
137
|
declare function useSignalEffect(fn: () => void): void;
|
|
138
138
|
/**
|
|
139
139
|
* React hook to initialize a signal with a value when hydrating from server.
|
|
140
|
-
*
|
|
141
|
-
* @
|
|
142
|
-
*
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* const countSignal = createSignal(0);
|
|
144
|
+
* useHydrateSignal(countSignal, 10);
|
|
145
|
+
* ```
|
|
143
146
|
*
|
|
144
147
|
* @template T - The type of the signal value.
|
|
145
148
|
* @param {TWritableSignal<T>} alienSignal - The signal to hydrate.
|
|
146
149
|
* @param {T} value - The value to hydrate the signal with.
|
|
147
150
|
*/
|
|
148
151
|
declare function useHydrateSignal<T>(alienSignal: TWritableSignal<T>, value: T): void;
|
|
152
|
+
/**
|
|
153
|
+
* Utility function to get the current value and setter of an Alien Signal.
|
|
154
|
+
*
|
|
155
|
+
* @example
|
|
156
|
+
* ```typescript
|
|
157
|
+
* const countSignal = createSignal(0);
|
|
158
|
+
* const { value, setValue } = getSignal(countSignal);
|
|
159
|
+
* console.log(value()); // current value
|
|
160
|
+
* setValue(10); // set value to 10
|
|
161
|
+
* ```
|
|
162
|
+
*
|
|
163
|
+
* @template T - The type of the signal value.
|
|
164
|
+
* @param {TWritableSignal<T>} alienSignal - The signal to read/write.
|
|
165
|
+
* @returns {{ value: () => T; setValue: (val: T | ((oldVal: T) => T)) => void }} An object with `value` and `setValue`.
|
|
166
|
+
*/
|
|
167
|
+
declare function getSignal<T>(alienSignal: TWritableSignal<T>): {
|
|
168
|
+
value: () => T;
|
|
169
|
+
setValue: (val: T | ((oldVal: T) => T)) => void;
|
|
170
|
+
};
|
|
149
171
|
|
|
150
|
-
export { type TWritableSignal, createComputed, createEffect, createSignal, createSignalStorage, useHydrateSignal, useSetSignal, useSignal, useSignalEffect, useSignalValue };
|
|
172
|
+
export { type TWritableSignal, createComputed, createEffect, createSignal, createSignalStorage, getSignal, useHydrateSignal, useSetSignal, useSignal, useSignalEffect, useSignalValue };
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {useSyncExternalStore,useEffect}from'react';import {signal,computed,effect}from'alien-signals';var a=new WeakMap;function l(t){let e=a.get(t);return e||(e=new WeakSet,a.set(t,e)),e}function d(t){return signal(t)}function y(t,e){let
|
|
1
|
+
import {useSyncExternalStore,useEffect}from'react';import {signal,computed,effect}from'alien-signals';var a=new WeakMap;function l(t){let e=a.get(t);return e||(e=new WeakSet,a.set(t,e)),e}function d(t){return signal(t)}function y(t,e){let r=localStorage.getItem(t),o;if(r)try{o=JSON.parse(r);}catch(c){console.error(`Error parsing localStorage for key "${t}", using initial value.`,c),o=e;}else o=e;let T=d(o);return p(()=>{localStorage.setItem(t,JSON.stringify(T()));}),T}function W(t){return computed(t)}function p(t){return effect(t)}function x(t){return [useSyncExternalStore(o=>{let T=effect(()=>{t(),o();});return ()=>T()},()=>t(),()=>t()),o=>{t(typeof o=="function"?o(t()):o);}]}function V(t){return useSyncExternalStore(e=>{let r=effect(()=>{t(),e();});return ()=>r()},()=>t(),()=>t())}function b(t){return e=>{t(typeof e=="function"?e(t()):e);}}function m(t){useEffect(()=>{let e=effect(t);return ()=>e()},[]);}function v(t,e){let r=l(t);r.has(t)||(r.add(t),t(e));}function h(t){return {value:()=>t(),setValue:r=>{t(typeof r=="function"?r(t()):r);}}}export{W as createComputed,p as createEffect,d as createSignal,y as createSignalStorage,h as getSignal,v as useHydrateSignal,b as useSetSignal,x as useSignal,m as useSignalEffect,V as useSignalValue};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "reactjs-signal",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0.
|
|
4
|
+
"version": "2.0.3",
|
|
5
5
|
"description": "",
|
|
6
6
|
"author": "",
|
|
7
7
|
"license": "ISC",
|
|
@@ -30,20 +30,20 @@
|
|
|
30
30
|
"files": [
|
|
31
31
|
"dist"
|
|
32
32
|
],
|
|
33
|
+
"scripts": {
|
|
34
|
+
"build": "tsup",
|
|
35
|
+
"dev": "tsup --watch"
|
|
36
|
+
},
|
|
33
37
|
"dependencies": {
|
|
34
|
-
"alien-signals": "^
|
|
38
|
+
"alien-signals": "^3.1.2"
|
|
35
39
|
},
|
|
36
40
|
"peerDependencies": {
|
|
37
|
-
"alien-signals": ">=
|
|
41
|
+
"alien-signals": ">=3.1.2",
|
|
38
42
|
"react": ">=18"
|
|
39
43
|
},
|
|
40
44
|
"devDependencies": {
|
|
41
45
|
"@types/react": "^19.0.2",
|
|
42
46
|
"tsup": "^8.0.1",
|
|
43
47
|
"typescript": "^5.3.3"
|
|
44
|
-
},
|
|
45
|
-
"scripts": {
|
|
46
|
-
"build": "tsup",
|
|
47
|
-
"dev": "tsup --watch"
|
|
48
48
|
}
|
|
49
|
-
}
|
|
49
|
+
}
|