@webview-bridge/react 1.5.3 → 1.6.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.
@@ -1 +1 @@
1
- "use strict";var a=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var p=Object.prototype.hasOwnProperty;var v=(r,e)=>{for(var t in e)a(r,t,{get:e[t],enumerable:!0})},b=(r,e,t,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of f(e))!p.call(r,n)&&n!==t&&a(r,n,{get:()=>e[n],enumerable:!(s=x(e,n))||s.enumerable});return r};var w=r=>b(a({},"__esModule",{value:!0}),r);var T={};v(T,{createLinkBridgeProvider:()=>P,useBridge:()=>B});module.exports=w(T);var S=require("@webview-bridge/web"),d=require("react");var u=require("use-sync-external-store/with-selector.js");function B(r,e){let t=e!=null?e:s=>s;return(0,u.useSyncExternalStoreWithSelector)(r.subscribe,r.getState,r.getState,t)}var c=require("react/jsx-runtime"),P=r=>{let e=(0,S.linkBridge)(r),t=(0,d.createContext)(null);return{bridge:e,BridgeProvider:({children:o})=>{let i=(0,d.useRef)();return i.current||(i.current=e),(0,c.jsx)(t.Provider,{value:i.current,children:o})},useBridgeStore:o=>{let i=(0,d.useContext)(t);if(!i)throw new Error("useBridgeStore must be used within a BridgeProvider");return B(i.store,o)},useBridgeStatus:()=>{let o=(0,d.useContext)(t);if(!o)throw new Error("useBridgeStatus must be used within a BridgeProvider");let{isNativeMethodAvailable:i,isWebViewBridgeAvailable:g}=o;return{isNativeMethodAvailable:i,isWebViewBridgeAvailable:g}},useBridgeLoose:()=>{let o=(0,d.useContext)(t);if(!o)throw new Error("useBridgeLoose must be used within a BridgeProvider");let{loose:i}=o;return{loose:i}},useBridgeEventListener:(o,i)=>{let g=(0,d.useContext)(t);if(!g)throw new Error("useBridgeEventListener must be used within a BridgeProvider");let{addEventListener:m}=g;(0,d.useEffect)(()=>m(o,i),[])}}};0&&(module.exports={createLinkBridgeProvider,useBridge});
1
+ "use strict";var g=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var x=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var f=(r,e)=>{for(var t in e)g(r,t,{get:e[t],enumerable:!0})},b=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of x(e))!m.call(r,s)&&s!==t&&g(r,s,{get:()=>e[s],enumerable:!(n=v(e,s))||n.enumerable});return r};var p=r=>b(g({},"__esModule",{value:!0}),r);var w={};f(w,{createLinkBridgeProvider:()=>l,useBridge:()=>a});module.exports=p(w);var S=require("@webview-bridge/web"),o=require("react");var B=require("use-sync-external-store/with-selector.js");function a(r,e){let t=e!=null?e:n=>n;return(0,B.useSyncExternalStoreWithSelector)(r.subscribe,r.getState,r.getState,t)}var c=require("react/jsx-runtime"),l=r=>{let e=(0,S.linkBridge)(r),t=(0,o.createContext)(null);return{bridge:e,BridgeProvider:({children:i})=>{let d=(0,o.useRef)();return d.current||(d.current=e),(0,c.jsx)(t.Provider,{value:d.current,children:i})},useBridgeStore:i=>{let d=(0,o.useContext)(t);if(!d)throw new Error("useBridgeStore must be used within a BridgeProvider");return a(d.store,i)},useBridgeStatus:()=>{let i=(0,o.useContext)(t);if(!i)throw new Error("useBridgeStatus must be used within a BridgeProvider");return{isNativeMethodAvailable:d=>i.isNativeMethodAvailable(d),isWebViewBridgeAvailable:i.isWebViewBridgeAvailable}},useBridgeLoose:()=>{let i=(0,o.useContext)(t);if(!i)throw new Error("useBridgeLoose must be used within a BridgeProvider");return{loose:i.loose}},useBridgeEventListener:(i,d)=>{let u=(0,o.useContext)(t);if(!u)throw new Error("useBridgeEventListener must be used within a BridgeProvider");(0,o.useEffect)(()=>u.addEventListener(i,d),[])}}};0&&(module.exports={createLinkBridgeProvider,useBridge});
@@ -1 +1 @@
1
- import{linkBridge as u}from"@webview-bridge/web";import{createContext as S,useContext as n,useEffect as c,useRef as m}from"react";import{useSyncExternalStoreWithSelector as B}from"use-sync-external-store/with-selector.js";function g(o,i){let t=i!=null?i:s=>s;return B(o.subscribe,o.getState,o.getState,t)}import{jsx as x}from"react/jsx-runtime";var l=o=>{let i=u(o),t=S(null);return{bridge:i,BridgeProvider:({children:r})=>{let e=m();return e.current||(e.current=i),x(t.Provider,{value:e.current,children:r})},useBridgeStore:r=>{let e=n(t);if(!e)throw new Error("useBridgeStore must be used within a BridgeProvider");return g(e.store,r)},useBridgeStatus:()=>{let r=n(t);if(!r)throw new Error("useBridgeStatus must be used within a BridgeProvider");let{isNativeMethodAvailable:e,isWebViewBridgeAvailable:d}=r;return{isNativeMethodAvailable:e,isWebViewBridgeAvailable:d}},useBridgeLoose:()=>{let r=n(t);if(!r)throw new Error("useBridgeLoose must be used within a BridgeProvider");let{loose:e}=r;return{loose:e}},useBridgeEventListener:(r,e)=>{let d=n(t);if(!d)throw new Error("useBridgeEventListener must be used within a BridgeProvider");let{addEventListener:a}=d;c(()=>a(r,e),[])}}};export{l as createLinkBridgeProvider,g as useBridge};
1
+ import{linkBridge as u}from"@webview-bridge/web";import{createContext as B,useContext as d,useEffect as S,useRef as c}from"react";import{useSyncExternalStoreWithSelector as a}from"use-sync-external-store/with-selector.js";function g(o,i){let t=i!=null?i:s=>s;return a(o.subscribe,o.getState,o.getState,t)}import{jsx as v}from"react/jsx-runtime";var T=o=>{let i=u(o),t=B(null);return{bridge:i,BridgeProvider:({children:e})=>{let r=c();return r.current||(r.current=i),v(t.Provider,{value:r.current,children:e})},useBridgeStore:e=>{let r=d(t);if(!r)throw new Error("useBridgeStore must be used within a BridgeProvider");return g(r.store,e)},useBridgeStatus:()=>{let e=d(t);if(!e)throw new Error("useBridgeStatus must be used within a BridgeProvider");return{isNativeMethodAvailable:r=>e.isNativeMethodAvailable(r),isWebViewBridgeAvailable:e.isWebViewBridgeAvailable}},useBridgeLoose:()=>{let e=d(t);if(!e)throw new Error("useBridgeLoose must be used within a BridgeProvider");return{loose:e.loose}},useBridgeEventListener:(e,r)=>{let n=d(t);if(!n)throw new Error("useBridgeEventListener must be used within a BridgeProvider");S(()=>n.addEventListener(e,r),[])}}};export{T as createLinkBridgeProvider,g as useBridge};
@@ -1,21 +1,18 @@
1
- import type { Bridge, BridgeStore, KeyOfOrString, LinkBridgeOptions, Parser, ParserSchema } from "@webview-bridge/web";
1
+ import type { Bridge, BridgeStore, ExcludePrimitive, ExtractStore, KeyOfOrString, LinkBridgeOptions, Parser, ParserSchema } from "@webview-bridge/web";
2
2
  import { type ReactNode } from "react";
3
3
  export interface BridgeProviderProps {
4
4
  children: ReactNode;
5
5
  }
6
6
  export declare const createLinkBridgeProvider: <T extends BridgeStore<T extends Bridge ? T : any>, V extends ParserSchema<any> = ParserSchema<any>>(options?: LinkBridgeOptions<T, V> | undefined) => {
7
- bridge: import("@webview-bridge/web").LinkBridge<import("@webview-bridge/web").ExcludePrimitive<import("@webview-bridge/web").ExtractStore<T>>, Omit<T, "setState">, V>;
7
+ bridge: import("@webview-bridge/web").LinkBridge<ExcludePrimitive<ExtractStore<T>>, Omit<T, "setState">, V>;
8
8
  BridgeProvider: ({ children }: BridgeProviderProps) => import("react/jsx-runtime").JSX.Element;
9
9
  useBridgeStore: <U>(selector: (state: ReturnType<T["getState"]>) => U) => U;
10
10
  useBridgeStatus: () => {
11
- isNativeMethodAvailable: {
12
- (method: keyof import("@webview-bridge/web").ExcludePrimitive<import("@webview-bridge/web").ExtractStore<T>>): boolean;
13
- (method: string): boolean;
14
- };
11
+ isNativeMethodAvailable: (method: keyof ExcludePrimitive<ExtractStore<T>>) => boolean;
15
12
  isWebViewBridgeAvailable: boolean;
16
13
  };
17
14
  useBridgeLoose: () => {
18
- loose: (import("@webview-bridge/web").ExcludePrimitive<import("@webview-bridge/web").ExtractStore<T>> extends infer T_1 ? { [K in keyof T_1]: (...args: any[]) => Promise<any>; } : never) & {
15
+ loose: (ExcludePrimitive<ExtractStore<T>> extends infer T_1 ? { [K in keyof T_1]: (...args: any[]) => Promise<any>; } : never) & {
19
16
  [key: string]: (...args: any[]) => Promise<any>;
20
17
  };
21
18
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@webview-bridge/react",
3
3
  "type": "module",
4
- "version": "1.5.3",
4
+ "version": "1.6.0",
5
5
  "description": "Fully Type-Safe Integration for React Native WebView and Web",
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -30,7 +30,7 @@
30
30
  "@types/use-sync-external-store": "^0.0.6",
31
31
  "esbuild": "^0.19.4",
32
32
  "react": "^18.2.0",
33
- "@webview-bridge/web": "^1.5.3"
33
+ "@webview-bridge/web": "^1.6.0"
34
34
  },
35
35
  "dependencies": {
36
36
  "use-sync-external-store": "^1.2.2"