crosshook 1.0.3 → 1.0.4

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.mts CHANGED
@@ -1,24 +1,24 @@
1
+ interface CrosshookEvents$1 {
2
+ }
3
+ type EventKey = keyof CrosshookEvents$1;
4
+ type EventPayload<K extends EventKey> = CrosshookEvents$1[K];
1
5
  type Handler<T = any> = (payload: T) => void;
2
- type EventMap = Record<string, (...args: any) => any>;
3
- type InferPayload<T> = T extends (payload: infer P) => any ? P : void;
4
- type EventsFrom<T extends EventMap> = {
5
- [K in keyof T]: InferPayload<T[K]>;
6
- };
7
6
 
8
7
  declare function register<T = any>(event: string, handler: Handler<T>): () => void;
9
- /** 🔥 GENERIC TYPED OVERLOAD */
10
- declare function call<E, K extends keyof E>(event: K, payload: E[K]): void;
11
8
 
12
- declare function useRegister<T = any>(event: string, handler: Handler<T>): void;
9
+ /** Typed overload */
10
+ declare function call<K extends EventKey>(event: K, payload: EventPayload<K>): void;
11
+ /** ✅ Void payload overload */
12
+ declare function call<K extends EventKey>(event: K): void;
13
+
14
+ /** ✅ Typed overload */
15
+ declare function useRegister<K extends EventKey>(event: K, handler: (payload: EventPayload<K>) => void): void;
13
16
  declare function useBridge(): {
14
17
  call: typeof call;
15
18
  };
16
19
 
17
- declare function createCrosshook<T extends EventMap>(defs: T): {
18
- useBridge: () => {
19
- call<K extends keyof T>(event: K, payload: EventsFrom<T>[K]): void;
20
- };
21
- useRegister: <K extends keyof T>(event: K, handler: (payload: EventsFrom<T>[K]) => void) => void;
22
- };
20
+ /** 🔥 MUST export for augmentation */
21
+ interface CrosshookEvents {
22
+ }
23
23
 
24
- export { type EventMap, type EventsFrom, type Handler, type InferPayload, call, createCrosshook, register, useBridge, useRegister };
24
+ export { type CrosshookEvents, type Handler, call, register, useBridge, useRegister };
package/dist/index.d.ts CHANGED
@@ -1,24 +1,24 @@
1
+ interface CrosshookEvents$1 {
2
+ }
3
+ type EventKey = keyof CrosshookEvents$1;
4
+ type EventPayload<K extends EventKey> = CrosshookEvents$1[K];
1
5
  type Handler<T = any> = (payload: T) => void;
2
- type EventMap = Record<string, (...args: any) => any>;
3
- type InferPayload<T> = T extends (payload: infer P) => any ? P : void;
4
- type EventsFrom<T extends EventMap> = {
5
- [K in keyof T]: InferPayload<T[K]>;
6
- };
7
6
 
8
7
  declare function register<T = any>(event: string, handler: Handler<T>): () => void;
9
- /** 🔥 GENERIC TYPED OVERLOAD */
10
- declare function call<E, K extends keyof E>(event: K, payload: E[K]): void;
11
8
 
12
- declare function useRegister<T = any>(event: string, handler: Handler<T>): void;
9
+ /** Typed overload */
10
+ declare function call<K extends EventKey>(event: K, payload: EventPayload<K>): void;
11
+ /** ✅ Void payload overload */
12
+ declare function call<K extends EventKey>(event: K): void;
13
+
14
+ /** ✅ Typed overload */
15
+ declare function useRegister<K extends EventKey>(event: K, handler: (payload: EventPayload<K>) => void): void;
13
16
  declare function useBridge(): {
14
17
  call: typeof call;
15
18
  };
16
19
 
17
- declare function createCrosshook<T extends EventMap>(defs: T): {
18
- useBridge: () => {
19
- call<K extends keyof T>(event: K, payload: EventsFrom<T>[K]): void;
20
- };
21
- useRegister: <K extends keyof T>(event: K, handler: (payload: EventsFrom<T>[K]) => void) => void;
22
- };
20
+ /** 🔥 MUST export for augmentation */
21
+ interface CrosshookEvents {
22
+ }
23
23
 
24
- export { type EventMap, type EventsFrom, type Handler, type InferPayload, call, createCrosshook, register, useBridge, useRegister };
24
+ export { type CrosshookEvents, type Handler, call, register, useBridge, useRegister };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var f=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var y=(e,r)=>{for(var o in r)f(e,o,{get:r[o],enumerable:!0})},E=(e,r,o,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of g(r))!m.call(e,t)&&t!==o&&f(e,t,{get:()=>r[t],enumerable:!(s=u(r,t))||s.enumerable});return e};var x=e=>E(f({},"__esModule",{value:!0}),e);var H={};y(H,{call:()=>i,createCrosshook:()=>d,register:()=>a,useBridge:()=>c,useRegister:()=>p});module.exports=x(H);var n=new Map;function a(e,r){return n.has(e)||n.set(e,new Set),n.get(e).add(r),()=>{n.get(e)?.delete(r),n.get(e)?.size===0&&n.delete(e)}}function i(e,r){let o=n.get(e);if(!o){process.env.NODE_ENV!=="production"&&console.warn(`[crosshook] No listeners for "${e}"`);return}o.forEach(s=>{try{s(r)}catch(t){console.error(`[crosshook] Handler error in "${e}"`,t)}})}var l=require("react");function p(e,r){(0,l.useEffect)(()=>a(e,r),[e,r])}function c(){return{call:i}}function d(e){function r(){return{call(s,t){i(s,t)}}}function o(s,t){p(s,t)}return{useBridge:r,useRegister:o}}0&&(module.exports={call,createCrosshook,register,useBridge,useRegister});
1
+ "use strict";var l=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var g=(e,r)=>{for(var t in r)l(e,t,{get:r[t],enumerable:!0})},x=(e,r,t,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of y(r))!u.call(e,o)&&o!==t&&l(e,o,{get:()=>r[o],enumerable:!(s=f(r,o))||s.enumerable});return e};var E=e=>x(l({},"__esModule",{value:!0}),e);var m={};g(m,{call:()=>a,register:()=>i,useBridge:()=>c,useRegister:()=>p});module.exports=E(m);var n=new Map;function i(e,r){return n.has(e)||n.set(e,new Set),n.get(e).add(r),()=>{n.get(e)?.delete(r),n.get(e)?.size===0&&n.delete(e)}}function a(e,r){let t=n.get(e);if(!t){process.env.NODE_ENV!=="production"&&console.warn(`[crosshook] No listeners for "${e}"`);return}t.forEach(s=>{try{s(r)}catch(o){console.error(`[crosshook] Handler error in "${e}"`,o)}})}var d=require("react");function p(e,r){(0,d.useEffect)(()=>i(e,r),[e,r])}function c(){return{call:a}}0&&(module.exports={call,register,useBridge,useRegister});
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/bridge.ts","../src/hooks.ts","../src/createCrossHook.ts"],"sourcesContent":["export { call, register } from \"./bridge\";\nexport { useBridge, useRegister } from \"./hooks\";\n\nexport { createCrosshook } from \"./createCrossHook\";\n\nexport type {\n Handler,\n EventMap,\n EventsFrom,\n InferPayload,\n} from \"./types\";","import type { Handler } from \"./types\";\n\n/** INTERNAL STORE */\nconst listeners = new Map<string, Set<Handler>>();\n\nexport function register<T = any>(\n event: string,\n handler: Handler<T>\n) {\n if (!listeners.has(event)) {\n listeners.set(event, new Set());\n }\n\n listeners.get(event)!.add(handler as Handler);\n\n return () => {\n listeners.get(event)?.delete(handler as Handler);\n\n if (listeners.get(event)?.size === 0) {\n listeners.delete(event);\n }\n };\n}\n\n/** 🔥 GENERIC TYPED OVERLOAD */\nexport function call<E, K extends keyof E>(\n event: K,\n payload: E[K]\n): void;\n\n/** DEFAULT FALLBACK */\nexport function call(event: string, payload?: any) {\n const handlers = listeners.get(event);\n\n if (!handlers) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`[crosshook] No listeners for \"${event}\"`);\n }\n return;\n }\n\n handlers.forEach((handler) => {\n try {\n handler(payload);\n } catch (err) {\n console.error(\n `[crosshook] Handler error in \"${event}\"`,\n err\n );\n }\n });\n}","import { useEffect } from \"react\";\nimport { register, call } from \"./bridge\";\nimport type { Handler } from \"./types\";\n\nexport function useRegister<T = any>(\n event: string,\n handler: Handler<T>\n) {\n useEffect(() => {\n const unregister = register(event, handler);\n return unregister;\n }, [event, handler]);\n}\n\nexport function useBridge() {\n return { call };\n}","import { call as baseCall } from \"./bridge\";\nimport { useRegister as baseRegister } from \"./hooks\";\nimport type { EventMap, EventsFrom } from \"./types\";\n\nexport function createCrosshook<T extends EventMap>(defs: T) {\n type Events = EventsFrom<T>;\n\n function useBridge() {\n return {\n call<K extends keyof Events>(\n event: K,\n payload: Events[K]\n ) {\n baseCall(event, payload);\n },\n };\n }\n\n function useRegister<K extends keyof Events>(\n event: K,\n handler: (payload: Events[K]) => void\n ) {\n baseRegister(event as string, handler);\n }\n\n return {\n useBridge,\n useRegister,\n };\n}"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,oBAAAC,EAAA,aAAAC,EAAA,cAAAC,EAAA,gBAAAC,IAAA,eAAAC,EAAAP,GCGA,IAAMQ,EAAY,IAAI,IAEf,SAASC,EACZC,EACAC,EACF,CACE,OAAKH,EAAU,IAAIE,CAAK,GACpBF,EAAU,IAAIE,EAAO,IAAI,GAAK,EAGlCF,EAAU,IAAIE,CAAK,EAAG,IAAIC,CAAkB,EAErC,IAAM,CACTH,EAAU,IAAIE,CAAK,GAAG,OAAOC,CAAkB,EAE3CH,EAAU,IAAIE,CAAK,GAAG,OAAS,GAC/BF,EAAU,OAAOE,CAAK,CAE9B,CACJ,CASO,SAASE,EAAKF,EAAeG,EAAe,CAC/C,IAAMC,EAAWN,EAAU,IAAIE,CAAK,EAEpC,GAAI,CAACI,EAAU,CACP,QAAQ,IAAI,WAAa,cACzB,QAAQ,KAAK,iCAAiCJ,CAAK,GAAG,EAE1D,MACJ,CAEAI,EAAS,QAASH,GAAY,CAC1B,GAAI,CACAA,EAAQE,CAAO,CACnB,OAASE,EAAK,CACV,QAAQ,MACJ,iCAAiCL,CAAK,IACtCK,CACJ,CACJ,CACJ,CAAC,CACL,CCnDA,IAAAC,EAA0B,iBAInB,SAASC,EACZC,EACAC,EACF,IACE,aAAU,IACaC,EAASF,EAAOC,CAAO,EAE3C,CAACD,EAAOC,CAAO,CAAC,CACvB,CAEO,SAASE,GAAY,CACxB,MAAO,CAAE,KAAAC,CAAK,CAClB,CCZO,SAASC,EAAoCC,EAAS,CAGzD,SAASC,GAAY,CACjB,MAAO,CACH,KACIC,EACAC,EACF,CACEC,EAASF,EAAOC,CAAO,CAC3B,CACJ,CACJ,CAEA,SAASE,EACLH,EACAI,EACF,CACED,EAAaH,EAAiBI,CAAO,CACzC,CAEA,MAAO,CACH,UAAAL,EACA,YAAAI,CACJ,CACJ","names":["index_exports","__export","call","createCrosshook","register","useBridge","useRegister","__toCommonJS","listeners","register","event","handler","call","payload","handlers","err","import_react","useRegister","event","handler","register","useBridge","call","createCrosshook","defs","useBridge","event","payload","call","useRegister","handler"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/bridge.ts","../src/hooks.ts"],"sourcesContent":["export { call, register } from \"./bridge\";\nexport { useBridge, useRegister } from \"./hooks\";\n\nexport type { Handler } from \"./types\";\n\n/** 🔥 MUST export for augmentation */\nexport interface CrosshookEvents { }","import type { Handler } from \"./types\";\n\nconst listeners = new Map<string, Set<Handler>>();\n\nexport function register<T = any>(\n event: string,\n handler: Handler<T>\n) {\n if (!listeners.has(event)) {\n listeners.set(event, new Set());\n }\n\n listeners.get(event)!.add(handler as Handler);\n\n return () => {\n listeners.get(event)?.delete(handler as Handler);\n\n if (listeners.get(event)?.size === 0) {\n listeners.delete(event);\n }\n };\n}\n\nimport type { EventKey, EventPayload } from \"./types\";\n\n/** Typed overload */\nexport function call<K extends EventKey>(\n event: K,\n payload: EventPayload<K>\n): void;\n\n/** ✅ Void payload overload */\nexport function call<K extends EventKey>(\n event: K\n): void;\n\n/** Fallback */\nexport function call(event: string, payload?: any) {\n const handlers = listeners.get(event);\n\n if (!handlers) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`[crosshook] No listeners for \"${event}\"`);\n }\n return;\n }\n\n handlers.forEach((handler) => {\n try {\n handler(payload);\n } catch (err) {\n console.error(\n `[crosshook] Handler error in \"${event}\"`,\n err\n );\n }\n });\n}","import { useEffect } from \"react\";\nimport { register, call } from \"./bridge\";\nimport type { Handler, EventKey, EventPayload } from \"./types\";\n\n/** ✅ Typed overload */\nexport function useRegister<K extends EventKey>(\n event: K,\n handler: (payload: EventPayload<K>) => void\n): void;\n\n/** ✅ Fallback */\nexport function useRegister(\n event: string,\n handler: Handler\n) {\n useEffect(() => {\n const unregister = register(event, handler);\n return unregister;\n }, [event, handler]);\n}\n\nexport function useBridge() {\n return { call };\n}"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,aAAAC,EAAA,cAAAC,EAAA,gBAAAC,IAAA,eAAAC,EAAAN,GCEA,IAAMO,EAAY,IAAI,IAEf,SAASC,EACZC,EACAC,EACF,CACE,OAAKH,EAAU,IAAIE,CAAK,GACpBF,EAAU,IAAIE,EAAO,IAAI,GAAK,EAGlCF,EAAU,IAAIE,CAAK,EAAG,IAAIC,CAAkB,EAErC,IAAM,CACTH,EAAU,IAAIE,CAAK,GAAG,OAAOC,CAAkB,EAE3CH,EAAU,IAAIE,CAAK,GAAG,OAAS,GAC/BF,EAAU,OAAOE,CAAK,CAE9B,CACJ,CAgBO,SAASE,EAAKF,EAAeG,EAAe,CAC/C,IAAMC,EAAWN,EAAU,IAAIE,CAAK,EAEpC,GAAI,CAACI,EAAU,CACP,QAAQ,IAAI,WAAa,cACzB,QAAQ,KAAK,iCAAiCJ,CAAK,GAAG,EAE1D,MACJ,CAEAI,EAAS,QAASH,GAAY,CAC1B,GAAI,CACAA,EAAQE,CAAO,CACnB,OAASE,EAAK,CACV,QAAQ,MACJ,iCAAiCL,CAAK,IACtCK,CACJ,CACJ,CACJ,CAAC,CACL,CCzDA,IAAAC,EAA0B,iBAWnB,SAASC,EACZC,EACAC,EACF,IACE,aAAU,IACaC,EAASF,EAAOC,CAAO,EAE3C,CAACD,EAAOC,CAAO,CAAC,CACvB,CAEO,SAASE,GAAY,CACxB,MAAO,CAAE,KAAAC,CAAK,CAClB","names":["index_exports","__export","call","register","useBridge","useRegister","__toCommonJS","listeners","register","event","handler","call","payload","handlers","err","import_react","useRegister","event","handler","register","useBridge","call"]}
package/dist/index.mjs CHANGED
@@ -1,2 +1,2 @@
1
- var t=new Map;function a(e,r){return t.has(e)||t.set(e,new Set),t.get(e).add(r),()=>{t.get(e)?.delete(r),t.get(e)?.size===0&&t.delete(e)}}function i(e,r){let o=t.get(e);if(!o){process.env.NODE_ENV!=="production"&&console.warn(`[crosshook] No listeners for "${e}"`);return}o.forEach(s=>{try{s(r)}catch(n){console.error(`[crosshook] Handler error in "${e}"`,n)}})}import{useEffect as f}from"react";function p(e,r){f(()=>a(e,r),[e,r])}function l(){return{call:i}}function c(e){function r(){return{call(s,n){i(s,n)}}}function o(s,n){p(s,n)}return{useBridge:r,useRegister:o}}export{i as call,c as createCrosshook,a as register,l as useBridge,p as useRegister};
1
+ var t=new Map;function n(e,r){return t.has(e)||t.set(e,new Set),t.get(e).add(r),()=>{t.get(e)?.delete(r),t.get(e)?.size===0&&t.delete(e)}}function s(e,r){let o=t.get(e);if(!o){process.env.NODE_ENV!=="production"&&console.warn(`[crosshook] No listeners for "${e}"`);return}o.forEach(i=>{try{i(r)}catch(a){console.error(`[crosshook] Handler error in "${e}"`,a)}})}import{useEffect as l}from"react";function d(e,r){l(()=>n(e,r),[e,r])}function p(){return{call:s}}export{s as call,n as register,p as useBridge,d as useRegister};
2
2
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/bridge.ts","../src/hooks.ts","../src/createCrossHook.ts"],"sourcesContent":["import type { Handler } from \"./types\";\n\n/** INTERNAL STORE */\nconst listeners = new Map<string, Set<Handler>>();\n\nexport function register<T = any>(\n event: string,\n handler: Handler<T>\n) {\n if (!listeners.has(event)) {\n listeners.set(event, new Set());\n }\n\n listeners.get(event)!.add(handler as Handler);\n\n return () => {\n listeners.get(event)?.delete(handler as Handler);\n\n if (listeners.get(event)?.size === 0) {\n listeners.delete(event);\n }\n };\n}\n\n/** 🔥 GENERIC TYPED OVERLOAD */\nexport function call<E, K extends keyof E>(\n event: K,\n payload: E[K]\n): void;\n\n/** DEFAULT FALLBACK */\nexport function call(event: string, payload?: any) {\n const handlers = listeners.get(event);\n\n if (!handlers) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`[crosshook] No listeners for \"${event}\"`);\n }\n return;\n }\n\n handlers.forEach((handler) => {\n try {\n handler(payload);\n } catch (err) {\n console.error(\n `[crosshook] Handler error in \"${event}\"`,\n err\n );\n }\n });\n}","import { useEffect } from \"react\";\nimport { register, call } from \"./bridge\";\nimport type { Handler } from \"./types\";\n\nexport function useRegister<T = any>(\n event: string,\n handler: Handler<T>\n) {\n useEffect(() => {\n const unregister = register(event, handler);\n return unregister;\n }, [event, handler]);\n}\n\nexport function useBridge() {\n return { call };\n}","import { call as baseCall } from \"./bridge\";\nimport { useRegister as baseRegister } from \"./hooks\";\nimport type { EventMap, EventsFrom } from \"./types\";\n\nexport function createCrosshook<T extends EventMap>(defs: T) {\n type Events = EventsFrom<T>;\n\n function useBridge() {\n return {\n call<K extends keyof Events>(\n event: K,\n payload: Events[K]\n ) {\n baseCall(event, payload);\n },\n };\n }\n\n function useRegister<K extends keyof Events>(\n event: K,\n handler: (payload: Events[K]) => void\n ) {\n baseRegister(event as string, handler);\n }\n\n return {\n useBridge,\n useRegister,\n };\n}"],"mappings":"AAGA,IAAMA,EAAY,IAAI,IAEf,SAASC,EACZC,EACAC,EACF,CACE,OAAKH,EAAU,IAAIE,CAAK,GACpBF,EAAU,IAAIE,EAAO,IAAI,GAAK,EAGlCF,EAAU,IAAIE,CAAK,EAAG,IAAIC,CAAkB,EAErC,IAAM,CACTH,EAAU,IAAIE,CAAK,GAAG,OAAOC,CAAkB,EAE3CH,EAAU,IAAIE,CAAK,GAAG,OAAS,GAC/BF,EAAU,OAAOE,CAAK,CAE9B,CACJ,CASO,SAASE,EAAKF,EAAeG,EAAe,CAC/C,IAAMC,EAAWN,EAAU,IAAIE,CAAK,EAEpC,GAAI,CAACI,EAAU,CACP,QAAQ,IAAI,WAAa,cACzB,QAAQ,KAAK,iCAAiCJ,CAAK,GAAG,EAE1D,MACJ,CAEAI,EAAS,QAASH,GAAY,CAC1B,GAAI,CACAA,EAAQE,CAAO,CACnB,OAASE,EAAK,CACV,QAAQ,MACJ,iCAAiCL,CAAK,IACtCK,CACJ,CACJ,CACJ,CAAC,CACL,CCnDA,OAAS,aAAAC,MAAiB,QAInB,SAASC,EACZC,EACAC,EACF,CACEC,EAAU,IACaC,EAASH,EAAOC,CAAO,EAE3C,CAACD,EAAOC,CAAO,CAAC,CACvB,CAEO,SAASG,GAAY,CACxB,MAAO,CAAE,KAAAC,CAAK,CAClB,CCZO,SAASC,EAAoCC,EAAS,CAGzD,SAASC,GAAY,CACjB,MAAO,CACH,KACIC,EACAC,EACF,CACEC,EAASF,EAAOC,CAAO,CAC3B,CACJ,CACJ,CAEA,SAASE,EACLH,EACAI,EACF,CACED,EAAaH,EAAiBI,CAAO,CACzC,CAEA,MAAO,CACH,UAAAL,EACA,YAAAI,CACJ,CACJ","names":["listeners","register","event","handler","call","payload","handlers","err","useEffect","useRegister","event","handler","useEffect","register","useBridge","call","createCrosshook","defs","useBridge","event","payload","call","useRegister","handler"]}
1
+ {"version":3,"sources":["../src/bridge.ts","../src/hooks.ts"],"sourcesContent":["import type { Handler } from \"./types\";\n\nconst listeners = new Map<string, Set<Handler>>();\n\nexport function register<T = any>(\n event: string,\n handler: Handler<T>\n) {\n if (!listeners.has(event)) {\n listeners.set(event, new Set());\n }\n\n listeners.get(event)!.add(handler as Handler);\n\n return () => {\n listeners.get(event)?.delete(handler as Handler);\n\n if (listeners.get(event)?.size === 0) {\n listeners.delete(event);\n }\n };\n}\n\nimport type { EventKey, EventPayload } from \"./types\";\n\n/** Typed overload */\nexport function call<K extends EventKey>(\n event: K,\n payload: EventPayload<K>\n): void;\n\n/** ✅ Void payload overload */\nexport function call<K extends EventKey>(\n event: K\n): void;\n\n/** Fallback */\nexport function call(event: string, payload?: any) {\n const handlers = listeners.get(event);\n\n if (!handlers) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(`[crosshook] No listeners for \"${event}\"`);\n }\n return;\n }\n\n handlers.forEach((handler) => {\n try {\n handler(payload);\n } catch (err) {\n console.error(\n `[crosshook] Handler error in \"${event}\"`,\n err\n );\n }\n });\n}","import { useEffect } from \"react\";\nimport { register, call } from \"./bridge\";\nimport type { Handler, EventKey, EventPayload } from \"./types\";\n\n/** ✅ Typed overload */\nexport function useRegister<K extends EventKey>(\n event: K,\n handler: (payload: EventPayload<K>) => void\n): void;\n\n/** ✅ Fallback */\nexport function useRegister(\n event: string,\n handler: Handler\n) {\n useEffect(() => {\n const unregister = register(event, handler);\n return unregister;\n }, [event, handler]);\n}\n\nexport function useBridge() {\n return { call };\n}"],"mappings":"AAEA,IAAMA,EAAY,IAAI,IAEf,SAASC,EACZC,EACAC,EACF,CACE,OAAKH,EAAU,IAAIE,CAAK,GACpBF,EAAU,IAAIE,EAAO,IAAI,GAAK,EAGlCF,EAAU,IAAIE,CAAK,EAAG,IAAIC,CAAkB,EAErC,IAAM,CACTH,EAAU,IAAIE,CAAK,GAAG,OAAOC,CAAkB,EAE3CH,EAAU,IAAIE,CAAK,GAAG,OAAS,GAC/BF,EAAU,OAAOE,CAAK,CAE9B,CACJ,CAgBO,SAASE,EAAKF,EAAeG,EAAe,CAC/C,IAAMC,EAAWN,EAAU,IAAIE,CAAK,EAEpC,GAAI,CAACI,EAAU,CACP,QAAQ,IAAI,WAAa,cACzB,QAAQ,KAAK,iCAAiCJ,CAAK,GAAG,EAE1D,MACJ,CAEAI,EAAS,QAASH,GAAY,CAC1B,GAAI,CACAA,EAAQE,CAAO,CACnB,OAASE,EAAK,CACV,QAAQ,MACJ,iCAAiCL,CAAK,IACtCK,CACJ,CACJ,CACJ,CAAC,CACL,CCzDA,OAAS,aAAAC,MAAiB,QAWnB,SAASC,EACZC,EACAC,EACF,CACEC,EAAU,IACaC,EAASH,EAAOC,CAAO,EAE3C,CAACD,EAAOC,CAAO,CAAC,CACvB,CAEO,SAASG,GAAY,CACxB,MAAO,CAAE,KAAAC,CAAK,CAClB","names":["listeners","register","event","handler","call","payload","handlers","err","useEffect","useRegister","event","handler","useEffect","register","useBridge","call"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "crosshook",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.js",
6
6
  "types": "dist/index.d.ts",