sparkle-react 0.0.1 → 0.0.2

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.js CHANGED
@@ -1,2 +1,2 @@
1
- import{createContext as l,useEffect as p,useState as S}from"react";import{jsx as u}from"react/jsx-runtime";var n=l({socket:void 0}),x=({children:o})=>{let[e,a]=S();return p(()=>{let r=new WebSocket("ws://localhost:8000");return a(r),()=>{r.close()}},[]),u(n.Provider,{value:{socket:e},children:o})};import{useCallback as c,useState as d,useContext as k}from"react";function v(...o){let{socket:e}=k(n);if(!e)throw new Error("You must use useDatabase inside a SparkleProvider");let[a,r]=d(o.reduce((s,t)=>({...s,[t]:""}),{}));return e.onopen=c(()=>{console.log("Connexion \xE9tablie"),e.send(JSON.stringify({type:"subscribe",keys:o}))},[]),e.onmessage=c(s=>{let t=JSON.parse(s.data.toString());console.log("Message re\xE7u : "+s.data),console.log("salut",t),r(i=>({...i,[t.key]:t.value}))},[]),a}export{n as SparkleContext,x as SparkleProvider,v as useDatabase};
1
+ import{createContext as S,useEffect as d,useState as f}from"react";import{jsx as k}from"react/jsx-runtime";var c=S({socket:void 0}),C=({children:t})=>{let[r,a]=f();return d(()=>{let s=new WebSocket("ws://localhost:8000");return a(s),()=>{s.close()}},[]),k(c.Provider,{value:{socket:r},children:t})};import{useCallback as l,useState as x,useContext as b,useEffect as g}from"react";function T(...t){let r=b(c),[a,s]=x(t.reduce((n,o)=>({...n,[o]:""}),{}));if(!r)throw new Error("You must use useDatabase inside a SparkleProvider");let{socket:e}=r,p=l(()=>{console.log("Connexion \xE9tablie"),e?.send(JSON.stringify({type:"subscribe",keys:t}))},[e,t]),i=l(n=>{let o=JSON.parse(n.data.toString());console.log("Message re\xE7u : "+n.data),console.log("salut",o),s(u=>({...u,[o.key]:o.value}))},[]);return g(()=>{e&&(e.onopen=p,e.onmessage=i)},[i,p,e]),a}export{c as SparkleContext,C as SparkleProvider,T as useDatabase};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/provider.tsx","../src/hooks/useDatabase.ts"],"sourcesContent":["import { createContext, useEffect, useState } from \"react\"\n\ninterface WebSocketContextType {\n socket: WebSocket | undefined\n}\n\nexport const SparkleContext = createContext<WebSocketContextType>({\n socket: undefined,\n})\n\ninterface SparkleProviderProps {\n children: React.ReactNode\n}\n\nexport const SparkleProvider = ({ children }: SparkleProviderProps) => {\n const [socket, setSocket] = useState<WebSocket>()\n\n useEffect(() => {\n const ws = new WebSocket(\"ws://localhost:8000\")\n setSocket(ws)\n\n return () => {\n ws.close()\n }\n }, [])\n\n return (\n <SparkleContext.Provider\n value={{\n socket,\n }}\n >\n {children}\n </SparkleContext.Provider>\n )\n}\n","import { useCallback, useState, useContext } from \"react\"\nimport { SparkleContext } from \"../provider\"\n\nexport function useDatabase<T extends string>(...keys: T[]) {\n const { socket } = useContext(SparkleContext)\n\n if (!socket) {\n throw new Error(\"You must use useDatabase inside a SparkleProvider\")\n }\n\n type State = Record<T, any>\n\n const [state, setState] = useState<State>(\n keys.reduce((acc, key) => ({ ...acc, [key]: \"\" }), {} as State)\n )\n\n socket.onopen = useCallback(() => {\n console.log(\"Connexion établie\")\n socket.send(JSON.stringify({ type: \"subscribe\", keys }))\n }, [])\n\n socket.onmessage = useCallback((event: MessageEvent) => {\n const data = JSON.parse(event.data.toString())\n\n console.log(\"Message reçu : \" + event.data)\n console.log(\"salut\", data)\n\n setState((state) => ({\n ...state,\n [data.key]: data.value,\n }))\n }, [])\n\n return state\n}\n"],"mappings":"AAAA,OAAS,iBAAAA,EAAe,aAAAC,EAAW,YAAAC,MAAgB,QA2B/C,cAAAC,MAAA,oBArBG,IAAMC,EAAiBJ,EAAoC,CAChE,OAAQ,MACV,CAAC,EAMYK,EAAkB,CAAC,CAAE,SAAAC,CAAS,IAA4B,CACrE,GAAM,CAACC,EAAQC,CAAS,EAAIN,EAAoB,EAEhD,OAAAD,EAAU,IAAM,CACd,IAAMQ,EAAK,IAAI,UAAU,qBAAqB,EAC9C,OAAAD,EAAUC,CAAE,EAEL,IAAM,CACXA,EAAG,MAAM,CACX,CACF,EAAG,CAAC,CAAC,EAGHN,EAACC,EAAe,SAAf,CACC,MAAO,CACL,OAAAG,CACF,EAEC,SAAAD,EACH,CAEJ,ECnCA,OAAS,eAAAI,EAAa,YAAAC,EAAU,cAAAC,MAAkB,QAG3C,SAASC,KAAiCC,EAAW,CAC1D,GAAM,CAAE,OAAAC,CAAO,EAAIC,EAAWC,CAAc,EAE5C,GAAI,CAACF,EACH,MAAM,IAAI,MAAM,mDAAmD,EAKrE,GAAM,CAACG,EAAOC,CAAQ,EAAIC,EACxBN,EAAK,OAAO,CAACO,EAAKC,KAAS,CAAE,GAAGD,EAAK,CAACC,CAAG,EAAG,EAAG,GAAI,CAAC,CAAU,CAChE,EAEA,OAAAP,EAAO,OAASQ,EAAY,IAAM,CAChC,QAAQ,IAAI,sBAAmB,EAC/BR,EAAO,KAAK,KAAK,UAAU,CAAE,KAAM,YAAa,KAAAD,CAAK,CAAC,CAAC,CACzD,EAAG,CAAC,CAAC,EAELC,EAAO,UAAYQ,EAAaC,GAAwB,CACtD,IAAMC,EAAO,KAAK,MAAMD,EAAM,KAAK,SAAS,CAAC,EAE7C,QAAQ,IAAI,qBAAoBA,EAAM,IAAI,EAC1C,QAAQ,IAAI,QAASC,CAAI,EAEzBN,EAAUD,IAAW,CACnB,GAAGA,EACH,CAACO,EAAK,GAAG,EAAGA,EAAK,KACnB,EAAE,CACJ,EAAG,CAAC,CAAC,EAEEP,CACT","names":["createContext","useEffect","useState","jsx","SparkleContext","SparkleProvider","children","socket","setSocket","ws","useCallback","useState","useContext","useDatabase","keys","socket","useContext","SparkleContext","state","setState","useState","acc","key","useCallback","event","data"]}
1
+ {"version":3,"sources":["../src/provider.tsx","../src/hooks/useDatabase.ts"],"sourcesContent":["import { createContext, useEffect, useState } from \"react\"\n\ninterface WebSocketContextType {\n socket: WebSocket | undefined\n}\n\nexport const SparkleContext = createContext<WebSocketContextType>({\n socket: undefined,\n})\n\ninterface SparkleProviderProps {\n children: React.ReactNode\n}\n\nexport const SparkleProvider = ({ children }: SparkleProviderProps) => {\n const [socket, setSocket] = useState<WebSocket>()\n\n useEffect(() => {\n const ws = new WebSocket(\"ws://localhost:8000\")\n setSocket(ws)\n\n return () => {\n ws.close()\n }\n }, [])\n\n return (\n <SparkleContext.Provider\n value={{\n socket,\n }}\n >\n {children}\n </SparkleContext.Provider>\n )\n}\n","import { useCallback, useState, useContext, useEffect } from \"react\"\nimport { SparkleContext } from \"../provider\"\n\nexport function useDatabase<T extends string>(...keys: T[]) {\n type State = Record<T, any>\n\n const context = useContext(SparkleContext)\n\n const [state, setState] = useState<State>(\n keys.reduce((acc, key) => ({ ...acc, [key]: \"\" }), {} as State)\n )\n\n if (!context) {\n throw new Error(\"You must use useDatabase inside a SparkleProvider\")\n }\n\n const { socket } = context\n\n const openOpen = useCallback(() => {\n console.log(\"Connexion établie\")\n socket?.send(JSON.stringify({ type: \"subscribe\", keys }))\n }, [socket, keys])\n\n const openMessage = useCallback((event: MessageEvent) => {\n const data = JSON.parse(event.data.toString())\n\n console.log(\"Message reçu : \" + event.data)\n console.log(\"salut\", data)\n\n setState((state) => ({\n ...state,\n [data.key]: data.value,\n }))\n }, [])\n\n useEffect(() => {\n if (!socket) return\n\n socket.onopen = openOpen\n socket.onmessage = openMessage\n }, [openMessage, openOpen, socket])\n\n return state\n}\n"],"mappings":"AAAA,OAAS,iBAAAA,EAAe,aAAAC,EAAW,YAAAC,MAAgB,QA2B/C,cAAAC,MAAA,oBArBG,IAAMC,EAAiBJ,EAAoC,CAChE,OAAQ,MACV,CAAC,EAMYK,EAAkB,CAAC,CAAE,SAAAC,CAAS,IAA4B,CACrE,GAAM,CAACC,EAAQC,CAAS,EAAIN,EAAoB,EAEhD,OAAAD,EAAU,IAAM,CACd,IAAMQ,EAAK,IAAI,UAAU,qBAAqB,EAC9C,OAAAD,EAAUC,CAAE,EAEL,IAAM,CACXA,EAAG,MAAM,CACX,CACF,EAAG,CAAC,CAAC,EAGHN,EAACC,EAAe,SAAf,CACC,MAAO,CACL,OAAAG,CACF,EAEC,SAAAD,EACH,CAEJ,ECnCA,OAAS,eAAAI,EAAa,YAAAC,EAAU,cAAAC,EAAY,aAAAC,MAAiB,QAGtD,SAASC,KAAiCC,EAAW,CAG1D,IAAMC,EAAUC,EAAWC,CAAc,EAEnC,CAACC,EAAOC,CAAQ,EAAIC,EACxBN,EAAK,OAAO,CAACO,EAAKC,KAAS,CAAE,GAAGD,EAAK,CAACC,CAAG,EAAG,EAAG,GAAI,CAAC,CAAU,CAChE,EAEA,GAAI,CAACP,EACH,MAAM,IAAI,MAAM,mDAAmD,EAGrE,GAAM,CAAE,OAAAQ,CAAO,EAAIR,EAEbS,EAAWC,EAAY,IAAM,CACjC,QAAQ,IAAI,sBAAmB,EAC/BF,GAAQ,KAAK,KAAK,UAAU,CAAE,KAAM,YAAa,KAAAT,CAAK,CAAC,CAAC,CAC1D,EAAG,CAACS,EAAQT,CAAI,CAAC,EAEXY,EAAcD,EAAaE,GAAwB,CACvD,IAAMC,EAAO,KAAK,MAAMD,EAAM,KAAK,SAAS,CAAC,EAE7C,QAAQ,IAAI,qBAAoBA,EAAM,IAAI,EAC1C,QAAQ,IAAI,QAASC,CAAI,EAEzBT,EAAUD,IAAW,CACnB,GAAGA,EACH,CAACU,EAAK,GAAG,EAAGA,EAAK,KACnB,EAAE,CACJ,EAAG,CAAC,CAAC,EAEL,OAAAC,EAAU,IAAM,CACTN,IAELA,EAAO,OAASC,EAChBD,EAAO,UAAYG,EACrB,EAAG,CAACA,EAAaF,EAAUD,CAAM,CAAC,EAE3BL,CACT","names":["createContext","useEffect","useState","jsx","SparkleContext","SparkleProvider","children","socket","setSocket","ws","useCallback","useState","useContext","useEffect","useDatabase","keys","context","useContext","SparkleContext","state","setState","useState","acc","key","socket","openOpen","useCallback","openMessage","event","data","useEffect"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sparkle-react",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "files": [
5
5
  "dist"
6
6
  ],