@alwatr/signal 9.12.0 → 9.13.0

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/README.md CHANGED
@@ -264,10 +264,14 @@ appChannel.subscribe((msg) => {
264
264
 
265
265
  ### Example: A Complete Action System
266
266
 
267
+ > **Note:** `@alwatr/action` is a higher-level package built on top of `ChannelSignal`. It adds declarative HTML attribute support (`on-action="click->add-to-cart:42"`), modifier chaining, payload resolvers, and DOM lifecycle management. For production use, prefer `@alwatr/action` over wiring `ChannelSignal` manually.
268
+
269
+ The example below shows what `@alwatr/action` does internally — and how you can use `ChannelSignal` directly when you need a pure-code action bus without DOM integration:
270
+
267
271
  ```typescript
268
272
  import {ChannelSignal} from '@alwatr/signal';
269
273
 
270
- // Define all app actions
274
+ // Define all app actions and their payload types
271
275
  interface AppActions {
272
276
  'user-login': {username: string};
273
277
  'user-logout': void;
@@ -276,9 +280,10 @@ interface AppActions {
276
280
  'navigate': {path: string};
277
281
  }
278
282
 
283
+ // One channel for the entire action layer
279
284
  const actionChannel = new ChannelSignal<AppActions>({name: 'app-actions'});
280
285
 
281
- // Business logic subscribes to actions
286
+ // Business logic subscribes O(1) routing, no cross-action interference
282
287
  actionChannel.on('user-login', (payload) => {
283
288
  authService.login(payload!.username);
284
289
  });
@@ -291,7 +296,7 @@ actionChannel.on('navigate', (payload) => {
291
296
  router.push(payload!.path);
292
297
  });
293
298
 
294
- // UI dispatches actions (e.g., from button clicks)
299
+ // UI dispatches actions
295
300
  loginButton.addEventListener('click', () => {
296
301
  actionChannel.dispatch('user-login', {username: 'ali'});
297
302
  });
@@ -669,10 +674,14 @@ appChannel.subscribe((msg) => {
669
674
 
670
675
  ### مثال کامل: یک سیستم Action
671
676
 
677
+ > **نکته:** پکیج `@alwatr/action` یک لایه بالاتر است که روی `ChannelSignal` ساخته شده. این پکیج پشتیبانی از attribute‌های HTML (`on-action="click->add-to-cart:42"`)، modifier chaining، payload resolver و مدیریت lifecycle DOM را اضافه می‌کند. برای استفاده در پروداکشن، `@alwatr/action` را به جای wiring مستقیم `ChannelSignal` ترجیح دهید.
678
+
679
+ مثال زیر نشان می‌دهد که `@alwatr/action` در داخل چه کاری انجام می‌دهد — و چگونه می‌توانید `ChannelSignal` را مستقیماً زمانی که به یک action bus خالص بدون DOM integration نیاز دارید استفاده کنید:
680
+
672
681
  ```typescript
673
682
  import {ChannelSignal} from '@alwatr/signal';
674
683
 
675
- // تعریف همه action‌های برنامه
684
+ // تعریف همه action‌های برنامه و نوع payload آن‌ها
676
685
  interface AppActions {
677
686
  'user-login': {username: string};
678
687
  'user-logout': void;
@@ -681,9 +690,10 @@ interface AppActions {
681
690
  'navigate': {path: string};
682
691
  }
683
692
 
693
+ // یک کانال برای کل لایه action
684
694
  const actionChannel = new ChannelSignal<AppActions>({name: 'app-actions'});
685
695
 
686
- // منطق تجاری به action‌ها subscribe می‌کند
696
+ // منطق تجاری subscribe می‌کند — routing با O(1)، بدون تداخل بین action‌ها
687
697
  actionChannel.on('user-login', (payload) => {
688
698
  authService.login(payload!.username);
689
699
  });
@@ -696,7 +706,7 @@ actionChannel.on('navigate', (payload) => {
696
706
  router.push(payload!.path);
697
707
  });
698
708
 
699
- // UI اقدام به dispatch action می‌کند (مثلاً از کلیک دکمه)
709
+ // UI اقدام به dispatch action می‌کند
700
710
  loginButton.addEventListener('click', () => {
701
711
  actionChannel.dispatch('user-login', {username: 'ali'});
702
712
  });
package/dist/main.js CHANGED
@@ -1,5 +1,5 @@
1
- /* 📦 @alwatr/signal v9.12.0 */
1
+ /* 📦 @alwatr/signal v9.13.0 */
2
2
  class B{config_;name;priorityObservers_=new Set;observers_=new Set;isDestroyed__=!1;get isDestroyed(){return this.isDestroyed__}constructor(G){this.config_=G;this.name=G.name}removeObserver_(G){if(this.logger_.logMethod?.("removeObserver_"),this.isDestroyed__){this.logger_.incident?.("removeObserver_","remove_observer_on_destroyed_signal");return}this.priorityObservers_.delete(G),this.observers_.delete(G)}subscribe(G,H){this.logger_.logMethodArgs?.("subscribe.base",H),this.checkDestroyed_();let Q={callback:G,options:H};if(H?.priority)this.priorityObservers_.add(Q);else this.observers_.add(Q);return{unsubscribe:()=>this.removeObserver_(Q)}}notify_(G){if(this.logger_.logMethodArgs?.("notify_",G),this.isDestroyed__){this.logger_.incident?.("notify_","notify_on_destroyed_signal");return}for(let H of this.priorityObservers_)this.executeObserver__(H,G);for(let H of this.observers_)this.executeObserver__(H,G)}executeObserver__(G,H){if(G.options?.once)this.removeObserver_(G);try{let Q=G.callback(H);if(Q instanceof Promise)Q.catch((X)=>this.logger_.error("notify_","async_callback_failed",X,{observer:G}))}catch(Q){this.logger_.error("notify_","sync_callback_failed",Q)}}pendingRejects__=new Set;untilNext(){return this.logger_.logMethod?.("untilNext"),this.checkDestroyed_(),new Promise((G,H)=>{this.pendingRejects__.add(H),this.subscribe((Q)=>{this.pendingRejects__.delete(H),G(Q)},{once:!0,priority:!0,receivePrevious:!1})})}destroy(){if(this.logger_.logMethod?.("destroy"),this.isDestroyed__){this.logger_.incident?.("destroy_","double_destroy_attempt");return}if(this.isDestroyed__=!0,this.pendingRejects__.size){let G=Error("signal_destroyed");for(let H of this.pendingRejects__)H(G);this.pendingRejects__.clear()}this.priorityObservers_.clear(),this.observers_.clear(),this.config_.onDestroy?.(),this.config_=null}checkDestroyed_(){if(this.isDestroyed__)throw this.logger_.accident("checkDestroyed_","attempt_to_use_destroyed_signal"),Error(`Cannot interact with a destroyed signal (id: ${this.name})`)}}import{delay as _}from"@alwatr/delay";import{createLogger as U}from"@alwatr/logger";class J extends B{logger_;constructor(G){super(G);this.logger_=U(`event-signal:${this.name}`),this.logger_.logMethod?.("constructor")}dispatch(G){this.logger_.logMethodArgs?.("dispatch",{payload:G}),this.checkDestroyed_(),_.nextMicrotask().then(()=>this.notify_(G))}}import{delay as M}from"@alwatr/delay";import{createLogger as E}from"@alwatr/logger";class K extends B{value__;logger_;constructor(G){super({name:G.name,onDestroy:G.onDestroy});this.logger_=E(`state-signal:${this.name}`),this.value__=G.initialValue,this.logger_.logMethodArgs?.("constructor",{initialValue:this.value__})}get(){return this.checkDestroyed_(),this.value__}set(G){if(this.logger_.logMethodArgs?.("set",{newValue:G}),Object.is(this.value__,G)&&(typeof G!=="object"||G===null))return;this.value__=G,this.notifyChange()}notifyChange(){this.logger_.logMethod?.("notifyChange"),this.checkDestroyed_(),M.nextMicrotask().then(()=>this.notify_(this.value__))}update(G){this.checkDestroyed_();let H=G(this.value__);this.logger_.logMethodFull?.("update",this.value__,H),this.set(H)}subscribe(G,H={}){if(this.logger_.logMethodArgs?.("subscribe",H),this.checkDestroyed_(),H.receivePrevious!==!1){if(M.nextMicrotask().then(()=>{this.logger_.logStep?.("subscribe","immediate_callback"),G(this.value__)}).catch((Q)=>this.logger_.error("subscribe","immediate_callback_failed",Q)),H.once)return{unsubscribe:()=>{}}}return super.subscribe(G,H)}destroy(){this.value__=null,super.destroy()}asReadonly(){return this}}import{delay as x}from"@alwatr/delay";import{createLogger as D}from"@alwatr/logger";class R{config_;name;logger_;internalSignal_;dependencySubscriptions__=[];isRecalculating__=!1;constructor(G){this.config_=G;this.name=G.name,this.logger_=D(`computed-signal:${this.name}`),this.recalculate_=this.recalculate_.bind(this),this.logger_.logMethod?.("constructor"),this.internalSignal_=new K({name:`compute-${this.name}_`,initialValue:this.config_.get()});for(let H of G.deps)this.logger_.logStep?.("constructor","subscribing_to_dependency",{signal:H.name}),this.dependencySubscriptions__.push(H.subscribe(this.recalculate_,{receivePrevious:!1}))}get(){return this.internalSignal_.get()}get isDestroyed(){return this.internalSignal_.isDestroyed}subscribe(G,H){return this.internalSignal_.subscribe(G,H)}untilNext(){return this.internalSignal_.untilNext()}destroy(){if(this.logger_.logMethod?.("destroy"),this.isDestroyed){this.logger_.incident?.("destroy","already_destroyed");return}for(let G of this.dependencySubscriptions__)G.unsubscribe();this.dependencySubscriptions__.length=0,this.internalSignal_.destroy(),this.config_.onDestroy?.(),this.config_=null}async recalculate_(){if(this.logger_.logMethod?.("recalculate_"),this.internalSignal_.isDestroyed){this.logger_.incident?.("recalculate_","recalculate_on_destroyed_signal");return}if(this.isRecalculating__){this.logger_.logStep?.("recalculate_","skipping_recalculation_already_scheduled");return}this.isRecalculating__=!0;try{if(await x.nextMacrotask(),this.isDestroyed){this.logger_.incident?.("recalculate_","destroyed_during_delay"),this.isRecalculating__=!1;return}this.logger_.logStep?.("recalculate_","recalculating_value"),this.internalSignal_.set(this.config_.get())}catch(G){this.logger_.error("recalculate_","recalculation_failed",G)}this.isRecalculating__=!1}}import{delay as I}from"@alwatr/delay";import{createLogger as N}from"@alwatr/logger";class z{config_;name;logger_;dependencySubscriptions__=[];isRunning__=!1;isDestroyed__=!1;get isDestroyed(){return this.isDestroyed__}constructor(G){this.config_=G;this.name=G.name??`[${G.deps.map((H)=>H.name).join(", ")}]`,this.logger_=N(`effect-signal:${this.name}`),this.scheduleExecution_=this.scheduleExecution_.bind(this),this.logger_.logMethod?.("constructor");for(let H of G.deps)this.logger_.logStep?.("constructor","subscribing_to_dependency",{signal:H.name}),this.dependencySubscriptions__.push(H.subscribe(this.scheduleExecution_,{receivePrevious:!1}));if(G.runImmediately===!0)this.logger_.logStep?.("constructor","scheduling_initial_execution"),this.scheduleExecution_()}async scheduleExecution_(){if(this.logger_.logMethod?.("scheduleExecution_"),this.isDestroyed__){this.logger_.incident?.("scheduleExecution_","schedule_execution_on_destroyed_signal");return}if(this.isRunning__){this.logger_.logStep?.("scheduleExecution_","skipped_because_already_running");return}this.isRunning__=!0;try{if(await I.nextMacrotask(),this.isDestroyed__){this.logger_.incident?.("scheduleExecution_","destroyed_during_delay"),this.isRunning__=!1;return}this.logger_.logStep?.("scheduleExecution_","executing_effect"),await this.config_.run()}catch(G){this.logger_.error("scheduleExecution_","effect_failed",G)}this.isRunning__=!1}destroy(){if(this.logger_.logMethod?.("destroy"),this.isDestroyed__){this.logger_.incident?.("destroy","already_destroyed");return}this.isDestroyed__=!0;for(let G of this.dependencySubscriptions__)G.unsubscribe();this.dependencySubscriptions__.length=0,this.config_.onDestroy?.(),this.config_=null}}import{createDebouncer as A}from"@alwatr/debounce";import{createLocalStorageProvider as k}from"@alwatr/local-storage";class L extends K{storageProvider__;storageDebouncer__;storageSyncSubscription__;constructor(G){let{name:H,storageKey:Q=H,saveDebounceDelay:X=500,initialValue:Y,onDestroy:Z,schemaVersion:W}=G,q=k({name:Q,schemaVersion:W});super({name:H,initialValue:q.read()??Y,onDestroy:Z});this.logger_.logMethodArgs?.("constructor",G),this.storageProvider__=q,this.storageDebouncer__=A({delay:X,leading:!1,trailing:!0,thisContext:this,func:this.syncStorage__}),this.storageSyncSubscription__=this.subscribe(this.storageDebouncer__.trigger,{receivePrevious:!1})}syncStorage__(G){this.logger_.logMethodArgs?.("syncStorage__",G),this.storageProvider__.write(G)}remove(){this.checkDestroyed_(),this.logger_.logMethod?.("remove"),this.storageProvider__.remove()}destroy(){this.logger_.logMethod?.("destroy"),this.storageDebouncer__.flush(),this.storageSyncSubscription__.unsubscribe(),super.destroy()}}import{createDebouncer as V}from"@alwatr/debounce";import{createSessionStorageProvider as j}from"@alwatr/session-storage";class O extends K{storageProvider__;storageDebouncer__;storageSyncSubscription__;constructor(G){let{name:H,storageKey:Q=H,saveDebounceDelay:X=500,initialValue:Y,onDestroy:Z}=G,W=j({name:Q});super({name:H,initialValue:W.read()??Y,onDestroy:Z});this.logger_.logMethodArgs?.("constructor",G),this.storageProvider__=W,this.storageDebouncer__=V({delay:X,leading:!1,trailing:!0,thisContext:this,func:this.syncStorage__}),this.storageSyncSubscription__=this.subscribe(this.storageDebouncer__.trigger,{receivePrevious:!1})}syncStorage__(G){this.logger_.logMethodArgs?.("syncStorage__",G),this.storageProvider__.write(G)}remove(){this.checkDestroyed_(),this.logger_.logMethod?.("remove"),this.storageProvider__.remove()}destroy(){this.logger_.logMethod?.("destroy"),this.storageDebouncer__.flush(),this.storageSyncSubscription__.unsubscribe(),super.destroy()}}import{delay as C}from"@alwatr/delay";import{createLogger as T}from"@alwatr/logger";class $ extends B{logger_;namedHandlers__=new Map;constructor(G){super(G);this.logger_=T(`channel-signal:${this.name}`),this.logger_.logMethod?.("constructor")}dispatch(G,H){this.logger_.logMethodArgs?.("dispatch",{name:G,payload:H}),this.checkDestroyed_(),C.nextMicrotask().then(()=>this.route__(G,H))}on(G,H,Q){this.logger_.logMethodArgs?.("on",{name:G}),this.checkDestroyed_();let X=this.namedHandlers__.get(G);if(!X)X=new Set,this.namedHandlers__.set(G,X);let Y={handler:H,once:Q?.once??!1};return X.add(Y),{unsubscribe:()=>{if(X.delete(Y),X.size===0)this.namedHandlers__.delete(G)}}}subscribe(G,H){return this.logger_.logMethodArgs?.("subscribe",H),super.subscribe(G,H)}route__(G,H){if(this.isDestroyed)return;let Q=this.namedHandlers__.get(G);if(Q?.size)for(let X of Q){if(X.once){if(Q.delete(X),Q.size===0)this.namedHandlers__.delete(G)}try{let Y=X.handler(H);if(Y instanceof Promise)Y.catch((Z)=>this.logger_.error("route__","async_named_handler_failed",Z))}catch(Y){this.logger_.error("route__","sync_named_handler_failed",Y)}}this.notify_({name:G,payload:H})}destroy(){this.namedHandlers__.clear(),super.destroy()}}function WG(G){return new J(G)}function P(G){return new K(G)}function F(G){return new R(G)}function OG(G){return new z(G)}function PG(G){return new L(G)}function EG(G){return new O(G)}function IG(G){return new $(G)}import{createDebouncer as w}from"@alwatr/debounce";function jG(G,H){let Q=H.name??`${G.name}-debounced`,X=new K({name:`${Q}-internal`,initialValue:G.get()}),Y=w({...H,thisContext:X,func:X.set}),Z=G.subscribe(Y.trigger,{receivePrevious:!1});return F({name:Q,deps:[X],get:()=>X.get(),onDestroy:()=>{if(X.isDestroyed)return;Z.unsubscribe(),Y.cancel(),X.destroy(),H.onDestroy?.(),H=null}})}function vG(G,H,Q=`${G.name}-filtered`){let X=G.get(),Y=H(X)?X:void 0,Z=P({name:`${Q}-internal`,initialValue:Y}),W=G.subscribe((q)=>{if(H(q))Z.set(q)});return F({name:Q,deps:[Z],get:()=>Z.get(),onDestroy:()=>{W.unsubscribe(),Z.destroy()}})}function SG(G,H,Q=`${G.name}-mapped`){return F({name:Q,deps:[G],get:()=>H(G.get())})}export{P as createStateSignal,EG as createSessionStateSignal,PG as createPersistentStateSignal,SG as createMappedSignal,vG as createFilteredSignal,WG as createEventSignal,OG as createEffect,jG as createDebouncedSignal,F as createComputedSignal,IG as createChannelSignal,K as StateSignal,B as SignalBase,O as SessionStateSignal,L as PersistentStateSignal,J as EventSignal,z as EffectSignal,R as ComputedSignal,$ as ChannelSignal};
3
3
 
4
- //# debugId=8AFACA9CBCD5128664756E2164756E21
4
+ //# debugId=39558698A04B4C5764756E2164756E21
5
5
  //# sourceMappingURL=main.js.map
package/dist/main.js.map CHANGED
@@ -22,6 +22,6 @@
22
22
  "import {createComputedSignal} from '../creators/computed.js';\n\nimport type {ComputedSignal} from '../core/computed-signal.js';\nimport type {IReadonlySignal} from '../type.js';\n\n/**\n * Creates a new read-only computed signal that transforms the value of a source\n * signal using a projection function.\n *\n * This operator is analogous to `Array.prototype.map`. It applies a function to\n * each value emitted by the source signal and emits the result.\n *\n * @template T The type of the source signal's value.\n * @template R The type of the projected value.\n *\n * @param sourceSignal The original signal to transform.\n * @param projectFunction A function to apply to each value from the source signal.\n * @param [name] An optional, unique identifier for the new signal for debugging. default: `${sourceSignal.name}-mapped`\n *\n * @returns A new, read-only computed signal with the transformed values.\n *\n * @example\n * const userSignal = createStateSignal({\n * name: 'user',\n * initialValue: { name: 'John', age: 30 },\n * });\n *\n * const userNameSignal = createMappedSignal(\n * userSignal,\n * (user) => user.name,\n * );\n *\n * console.log(userNameSignal.get()); // Outputs: \"John\"\n * // in next macro-task ...\n * userSignal.set({ name: 'Jane', age: 32 });\n * console.log(userNameSignal.get()); // Outputs: \"Jane\"\n */\nexport function createMappedSignal<T, R>(\n sourceSignal: IReadonlySignal<T>,\n projectFunction: (value: T) => R,\n name = `${sourceSignal.name}-mapped`,\n): ComputedSignal<R> {\n return createComputedSignal({\n name: name,\n deps: [sourceSignal],\n get: () => projectFunction(sourceSignal.get()),\n });\n}\n"
23
23
  ],
24
24
  "mappings": "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",
25
- "debugId": "8AFACA9CBCD5128664756E2164756E21",
25
+ "debugId": "39558698A04B4C5764756E2164756E21",
26
26
  "names": []
27
27
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alwatr/signal",
3
- "version": "9.12.0",
3
+ "version": "9.13.0",
4
4
  "description": "Alwatr Signal is a powerful, lightweight, and modern reactive programming library. It is inspired by the best concepts from major reactive libraries but engineered to be faster and more efficient than all of them. It provides a robust and elegant way to manage application state through a system of signals, offering fine-grained reactivity, predictability, and excellent performance.",
5
5
  "license": "MPL-2.0",
6
6
  "author": "S. Ali Mihandoost <ali.mihandoost@gmail.com> (https://ali.mihandoost.com)",
@@ -66,5 +66,5 @@
66
66
  "signal",
67
67
  "typescript"
68
68
  ],
69
- "gitHead": "b4ca873ebd15cd2e25b34273d76febfd75267b62"
69
+ "gitHead": "da284d23e3173d589fa69376e51a098c5e89649d"
70
70
  }