comments for signal implmentation
This commit is contained in:
parent
e72196cb34
commit
cecefefa57
15
src/Mite.js
15
src/Mite.js
|
@ -1,14 +1,27 @@
|
||||||
// Signal implementation
|
/**
|
||||||
|
* Signal
|
||||||
|
*
|
||||||
|
* Creates a signal for reactive state management
|
||||||
|
*
|
||||||
|
* @param {any} value - Initial value for the signal
|
||||||
|
*
|
||||||
|
* @returns {Object} Signal object with getter, setter, and subscription methods
|
||||||
|
*/
|
||||||
function signal(value) {
|
function signal(value) {
|
||||||
const subscribers = new Set();
|
const subscribers = new Set();
|
||||||
return {
|
return {
|
||||||
|
// gets current signal value
|
||||||
get value() {
|
get value() {
|
||||||
return value;
|
return value;
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// sets a new value for the signal, notifying all subscribers
|
||||||
set value(newValue) {
|
set value(newValue) {
|
||||||
value = newValue;
|
value = newValue;
|
||||||
subscribers.forEach(fn => fn());
|
subscribers.forEach(fn => fn());
|
||||||
},
|
},
|
||||||
|
|
||||||
|
// subscribe to value changes
|
||||||
subscribe(fn) {
|
subscribe(fn) {
|
||||||
subscribers.add(fn);
|
subscribers.add(fn);
|
||||||
return () => subscribers.delete(fn);
|
return () => subscribers.delete(fn);
|
||||||
|
|
Loading…
Reference in New Issue