crosshook 1.0.0 → 1.0.1
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 +12 -3
- package/dist/index.d.ts +12 -3
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
|
+
interface CrosshookEvents$1 {
|
|
2
|
+
}
|
|
3
|
+
type EventKey = keyof CrosshookEvents$1;
|
|
4
|
+
type EventPayload<K extends EventKey> = CrosshookEvents$1[K];
|
|
5
|
+
|
|
1
6
|
type Handler<T = any> = (payload: T) => void;
|
|
2
7
|
declare function register<T = any>(event: string, handler: Handler<T>): () => void;
|
|
3
|
-
declare function call<T = any>(event: string, payload?: T): void;
|
|
4
8
|
|
|
5
|
-
declare function
|
|
9
|
+
declare function call<K extends EventKey>(event: K, payload: EventPayload<K>): void;
|
|
10
|
+
|
|
11
|
+
declare function useRegister<K extends EventKey>(event: K, handler: (payload: EventPayload<K>) => void): void;
|
|
6
12
|
declare function useBridge(): {
|
|
7
13
|
call: typeof call;
|
|
8
14
|
};
|
|
9
15
|
|
|
10
|
-
|
|
16
|
+
interface CrosshookEvents {
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { type CrosshookEvents, type Handler, call, register, useBridge, useRegister };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
|
+
interface CrosshookEvents$1 {
|
|
2
|
+
}
|
|
3
|
+
type EventKey = keyof CrosshookEvents$1;
|
|
4
|
+
type EventPayload<K extends EventKey> = CrosshookEvents$1[K];
|
|
5
|
+
|
|
1
6
|
type Handler<T = any> = (payload: T) => void;
|
|
2
7
|
declare function register<T = any>(event: string, handler: Handler<T>): () => void;
|
|
3
|
-
declare function call<T = any>(event: string, payload?: T): void;
|
|
4
8
|
|
|
5
|
-
declare function
|
|
9
|
+
declare function call<K extends EventKey>(event: K, payload: EventPayload<K>): void;
|
|
10
|
+
|
|
11
|
+
declare function useRegister<K extends EventKey>(event: K, handler: (payload: EventPayload<K>) => void): void;
|
|
6
12
|
declare function useBridge(): {
|
|
7
13
|
call: typeof call;
|
|
8
14
|
};
|
|
9
15
|
|
|
10
|
-
|
|
16
|
+
interface CrosshookEvents {
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export { type CrosshookEvents, type Handler, call, register, useBridge, useRegister };
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var d=Object.defineProperty;var f=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var g=Object.prototype.hasOwnProperty;var u=(e,r)=>{for(var t in r)d(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))!g.call(e,o)&&o!==t&&d(e,o,{get:()=>r[o],enumerable:!(s=f(r,o))||s.enumerable});return e};var E=e=>x(d({},"__esModule",{value:!0}),e);var m={};u(m,{call:()=>i,register:()=>a,useBridge:()=>c,useRegister:()=>p});module.exports=E(m);var l=require("react");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 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)}})}function p(e,r){(0,l.useEffect)(()=>a(e,r),[e,r])}function c(){return{call:i}}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/hooks.ts","../src/bridge.ts"],"sourcesContent":["export { useBridge, useRegister } from \"./hooks\";\nexport { call, register } from \"./bridge\";\nexport type { Handler } from \"./bridge\"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/hooks.ts","../src/bridge.ts"],"sourcesContent":["export { useBridge, useRegister } from \"./hooks\";\nexport { call, register } from \"./bridge\";\n\nexport type { Handler } from \"./bridge\";\n\n// 🔥 MUST export for module augmentation\nexport interface CrosshookEvents { }","import { useEffect } from \"react\";\nimport { register, call, Handler } from \"./bridge\";\nimport type { 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// ✅ Untyped 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}","export type Handler<T = any> = (payload: T) => void;\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\n// ✅ Typed overload (TS users)\nimport type { EventKey, EventPayload } from \"./types\";\n\nexport function call<K extends EventKey>(\n event: K,\n payload: EventPayload<K>\n): void;\n\n// ✅ Untyped fallback (JS users)\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}"],"mappings":"yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,UAAAE,EAAA,aAAAC,EAAA,cAAAC,EAAA,gBAAAC,IAAA,eAAAC,EAAAN,GCAA,IAAAO,EAA0B,iBCE1B,IAAMC,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,CAWO,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,CDzCO,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","import_react","listeners","register","event","handler","call","payload","handlers","err","useRegister","event","handler","register","useBridge","call"]}
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useEffect as
|
|
1
|
+
import{useEffect as d}from"react";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(a=>{try{a(r)}catch(i){console.error(`[crosshook] Handler error in "${e}"`,i)}})}function l(e,r){d(()=>n(e,r),[e,r])}function p(){return{call:s}}export{s as call,n as register,p as useBridge,l as useRegister};
|
|
2
2
|
//# sourceMappingURL=index.mjs.map
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks.ts","../src/bridge.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { register, call, Handler } from \"./bridge\";\n\nexport function useRegister<
|
|
1
|
+
{"version":3,"sources":["../src/hooks.ts","../src/bridge.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport { register, call, Handler } from \"./bridge\";\nimport type { 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// ✅ Untyped 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}","export type Handler<T = any> = (payload: T) => void;\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\n// ✅ Typed overload (TS users)\nimport type { EventKey, EventPayload } from \"./types\";\n\nexport function call<K extends EventKey>(\n event: K,\n payload: EventPayload<K>\n): void;\n\n// ✅ Untyped fallback (JS users)\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}"],"mappings":"AAAA,OAAS,aAAAA,MAAiB,QCE1B,IAAMC,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,CAWO,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,CDzCO,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":["useEffect","listeners","register","event","handler","call","payload","handlers","err","useRegister","event","handler","useEffect","register","useBridge","call"]}
|