@obelism/improve-sdk-react 0.5.2 → 0.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.
package/dist/index.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { ImproveClientSDK } from '@obelism/improve-sdk/client';
3
- import { ImproveSetupArgs } from '@obelism/improve-sdk/types';
3
+ import { ImproveSetupArgs, ImproveEventName, ImproveAnalyticPayload } from '@obelism/improve-sdk/types';
4
4
 
5
5
  type ImproveProviderProps = {
6
6
  children?: React.ReactNode;
@@ -14,7 +14,7 @@ type ImproveStatus = 'loading' | 'setup' | 'error';
14
14
  declare const generateImproveProvider: (improveSetupArgs: ImproveSetupArgs) => {
15
15
  ImproveProvider: ({ children }: ImproveProviderProps) => react.JSX.Element;
16
16
  useImproveStatus: () => ImproveStatus;
17
- usePostAnalytic: (testSlug: string) => (event: string, message?: string) => Promise<Response>;
17
+ usePostAnalytic: (testSlug: string) => (event: ImproveEventName, payload?: ImproveAnalyticPayload | string) => Promise<Response>;
18
18
  useTestValue: (testSlug: string, fallback?: string) => string;
19
19
  useFlagValue: (flagSlug: string, fallback?: string) => string;
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","sources":["../src/index.tsx"],"mappings":";;;;AAGA,KAAK,oBAAoB;AACzB,eAAe,KAAK,CAAC,SAAS;AAC9B;AACA,KAAK,kBAAkB;AACvB,kBAAkB,gBAAgB;AAClC,kBAAkB,gBAAgB;AAClC,kBAAkB,gBAAgB;AAClC;AACA,KAAK,aAAa;AAClB,cAAc,uBAAuB,qBAAqB,gBAAgB;AAC1E,oCAAoC,oBAAoB,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO;AAC9E,4BAA4B,aAAa;AACzC,gFAAgF,OAAO,CAAC,QAAQ;AAChG;AACA;AACA;;;;","names":[]}
1
+ {"version":3,"file":"index.d.mts","sources":["../src/index.tsx"],"mappings":";;;;AAGA,KAAK,oBAAoB;AACzB,eAAe,KAAK,CAAC,SAAS;AAC9B;AACA,KAAK,kBAAkB;AACvB,kBAAkB,gBAAgB;AAClC,kBAAkB,gBAAgB;AAClC,kBAAkB,gBAAgB;AAClC;AACA,KAAK,aAAa;AAClB,cAAc,uBAAuB,qBAAqB,gBAAgB;AAC1E,oCAAoC,oBAAoB,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO;AAC9E,4BAA4B,aAAa;AACzC,mDAAmD,gBAAgB,YAAY,sBAAsB,cAAc,OAAO,CAAC,QAAQ;AACnI;AACA;AACA;;;;","names":[]}
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as react from 'react';
2
2
  import { ImproveClientSDK } from '@obelism/improve-sdk/client';
3
- import { ImproveSetupArgs } from '@obelism/improve-sdk/types';
3
+ import { ImproveSetupArgs, ImproveEventName, ImproveAnalyticPayload } from '@obelism/improve-sdk/types';
4
4
 
5
5
  type ImproveProviderProps = {
6
6
  children?: React.ReactNode;
@@ -14,7 +14,7 @@ type ImproveStatus = 'loading' | 'setup' | 'error';
14
14
  declare const generateImproveProvider: (improveSetupArgs: ImproveSetupArgs) => {
15
15
  ImproveProvider: ({ children }: ImproveProviderProps) => react.JSX.Element;
16
16
  useImproveStatus: () => ImproveStatus;
17
- usePostAnalytic: (testSlug: string) => (event: string, message?: string) => Promise<Response>;
17
+ usePostAnalytic: (testSlug: string) => (event: ImproveEventName, payload?: ImproveAnalyticPayload | string) => Promise<Response>;
18
18
  useTestValue: (testSlug: string, fallback?: string) => string;
19
19
  useFlagValue: (flagSlug: string, fallback?: string) => string;
20
20
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sources":["../src/index.tsx"],"mappings":";;;;AAGA,KAAK,oBAAoB;AACzB,eAAe,KAAK,CAAC,SAAS;AAC9B;AACA,KAAK,kBAAkB;AACvB,kBAAkB,gBAAgB;AAClC,kBAAkB,gBAAgB;AAClC,kBAAkB,gBAAgB;AAClC;AACA,KAAK,aAAa;AAClB,cAAc,uBAAuB,qBAAqB,gBAAgB;AAC1E,oCAAoC,oBAAoB,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO;AAC9E,4BAA4B,aAAa;AACzC,gFAAgF,OAAO,CAAC,QAAQ;AAChG;AACA;AACA;;;;","names":[]}
1
+ {"version":3,"file":"index.d.ts","sources":["../src/index.tsx"],"mappings":";;;;AAGA,KAAK,oBAAoB;AACzB,eAAe,KAAK,CAAC,SAAS;AAC9B;AACA,KAAK,kBAAkB;AACvB,kBAAkB,gBAAgB;AAClC,kBAAkB,gBAAgB;AAClC,kBAAkB,gBAAgB;AAClC;AACA,KAAK,aAAa;AAClB,cAAc,uBAAuB,qBAAqB,gBAAgB;AAC1E,oCAAoC,oBAAoB,KAAK,KAAK,CAAC,GAAG,CAAC,OAAO;AAC9E,4BAA4B,aAAa;AACzC,mDAAmD,gBAAgB,YAAY,sBAAsB,cAAc,OAAO,CAAC,QAAQ;AACnI;AACA;AACA;;;;","names":[]}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react'\nimport type { ImproveClientSDK } from '@obelism/improve-sdk/client'\nimport type { ImproveSetupArgs } from '@obelism/improve-sdk/types'\n\nexport type ImproveProviderProps = {\n\tchildren?: React.ReactNode\n}\n\nexport type ImproveContextType = {\n\tgetFlagValue: ImproveClientSDK['getFlagValue']\n\tgetTestValue: ImproveClientSDK['getTestValue']\n\tpostAnalytic: ImproveClientSDK['postAnalytic']\n}\n\nconst DEFAULT_VALUE: ImproveContextType = {\n\tgetFlagValue: () => null,\n\tgetTestValue: () => null,\n\tpostAnalytic: () => null,\n}\n\ntype ImproveStatus = 'loading' | 'setup' | 'error'\n\nconst ImproveStatusContext = createContext<ImproveStatus>('loading')\nconst ImproveContext = createContext<ImproveContextType>(DEFAULT_VALUE)\n\nexport const generateImproveProvider = (improveSetupArgs: ImproveSetupArgs) => {\n\tconst ImproveProvider = ({ children }: ImproveProviderProps) => {\n\t\tconst [status, setStatus] = useState<ImproveStatus>('loading')\n\n\t\tconst loadingSdk = useRef<boolean>(false)\n\t\tconst improveSdkRef = useRef<ImproveClientSDK | null>(null)\n\n\t\tuseEffect(() => {\n\t\t\tif (improveSdkRef.current || loadingSdk.current) return\n\t\t\tloadingSdk.current = true\n\t\t\tlet loaded = false\n\t\t\tlet aborted = false\n\n\t\t\timport('@obelism/improve-sdk/client')\n\t\t\t\t.then(async ({ ImproveClientSDK }) => {\n\t\t\t\t\tif (aborted) return\n\t\t\t\t\timproveSdkRef.current = new ImproveClientSDK(improveSetupArgs)\n\n\t\t\t\t\tif (!improveSetupArgs.config) {\n\t\t\t\t\t\tawait improveSdkRef.current.fetchConfig()\n\t\t\t\t\t}\n\n\t\t\t\t\tif (aborted) return\n\t\t\t\t\tloaded = true\n\t\t\t\t\tsetStatus('setup')\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tloadingSdk.current = false\n\t\t\t\t\tconsole.error(e)\n\t\t\t\t\tsetStatus('error')\n\t\t\t\t})\n\n\t\t\treturn () => {\n\t\t\t\tif (loaded) return\n\t\t\t\tloadingSdk.current = false\n\t\t\t\taborted = true\n\t\t\t}\n\t\t}, [])\n\n\t\tconst actions = useMemo(() => {\n\t\t\tif (status !== 'setup' || !improveSdkRef.current) return DEFAULT_VALUE\n\t\t\treturn {\n\t\t\t\tgetTestValue: improveSdkRef.current.getTestValue,\n\t\t\t\tpostAnalytic: improveSdkRef.current.postAnalytic,\n\t\t\t\tgetFlagValue: improveSdkRef.current.getFlagValue,\n\t\t\t}\n\t\t}, [status])\n\n\t\treturn (\n\t\t\t<ImproveStatusContext.Provider value={status}>\n\t\t\t\t<ImproveContext.Provider value={actions}>\n\t\t\t\t\t{children}\n\t\t\t\t</ImproveContext.Provider>\n\t\t\t</ImproveStatusContext.Provider>\n\t\t)\n\t}\n\n\tconst useImproveStatus = () => useContext(ImproveStatusContext)\n\n\tconst usePostAnalytic = (testSlug: string) => {\n\t\tconst { postAnalytic } = useContext(ImproveContext)\n\n\t\treturn useCallback(\n\t\t\t(event: string, message?: string) => {\n\t\t\t\treturn postAnalytic(testSlug, event, message)\n\t\t\t},\n\t\t\t[postAnalytic, testSlug],\n\t\t)\n\t}\n\n\tconst useTestValue = (testSlug: string, fallback?: string) => {\n\t\tconst { getTestValue } = useContext(ImproveContext)\n\t\treturn getTestValue(testSlug) || fallback\n\t}\n\n\tconst useFlagValue = (flagSlug: string, fallback?: string) => {\n\t\tconst { getFlagValue } = useContext(ImproveContext)\n\t\treturn getFlagValue(flagSlug) || fallback\n\t}\n\n\treturn {\n\t\tImproveProvider,\n\t\tuseImproveStatus,\n\t\tusePostAnalytic,\n\t\tuseTestValue,\n\t\tuseFlagValue,\n\t}\n}\n"],"names":["DEFAULT_VALUE","getFlagValue","getTestValue","postAnalytic","ImproveStatusContext","createContext","ImproveContext","improveSetupArgs","ImproveProvider","children","status","setStatus","useState","loadingSdk","useRef","improveSdkRef","useEffect","current","loaded","aborted","then","ImproveClientSDK","config","fetchConfig","catch","e","console","error","actions","useMemo","_jsx","Provider","value","useImproveStatus","useContext","usePostAnalytic","testSlug","useCallback","event","message","useTestValue","fallback","useFlagValue","flagSlug"],"mappings":"6GAsBA,IAAMA,EAAoC,CACzCC,aAAc,IAAM,KACpBC,aAAc,IAAM,KACpBC,aAAc,IAAM,IACrB,EAIMC,EAAuBC,EAAAA,aAAAA,CAA6B,WACpDC,EAAiBD,EAAAA,aAAAA,CAAkCL,mCAElB,AAACO,GAgFhC,CAAA,CACNC,gBAhFuB,CAAC,CAAEC,SAAAA,CAAQ,CAAwB,IAC1D,GAAM,CAACC,EAAQC,EAAU,CAAGC,EAAAA,QAAAA,CAAwB,WAE9CC,EAAaC,EAAAA,MAAAA,CAAgB,CAAA,GAC7BC,EAAgBD,EAAAA,MAAAA,CAAgC,MAEtDE,EAAAA,SAAAA,CAAU,KACT,GAAID,EAAcE,OAAO,EAAIJ,EAAWI,OAAO,CAAE,MACjDJ,CAAAA,EAAWI,OAAO,CAAG,CAAA,EACrB,IAAIC,EAAS,CAAA,EACTC,EAAU,CAAA,EAqBd,OAnBA,MAAA,CAAO,+BACLC,IAAI,CAAC,MAAO,CAAEC,iBAAAA,CAAgB,CAAE,IAChC,AAAIF,IACJJ,EAAcE,OAAO,CAAG,IAAII,EAAiBd,GAEzC,AAACA,EAAiBe,MAAM,EAC3B,MAAMP,EAAcE,OAAO,CAACM,WAAW,GAGpCJ,IACJD,EAAS,CAAA,EACTP,EAAU,UACX,GACCa,KAAK,CAAC,AAACC,IACPZ,EAAWI,OAAO,CAAG,CAAA,EACrBS,QAAQC,KAAK,CAACF,GACdd,EAAU,QACX,GAEM,KACFO,IACJL,EAAWI,OAAO,CAAG,CAAA,EACrBE,EAAU,CAAA,EACX,CACD,EAAG,EAAE,EAEL,IAAMS,EAAUC,EAAAA,OAAAA,CAAQ,IACvB,AAAInB,AAAW,UAAXA,GAAuBK,EAAcE,OAAO,CACzC,CACNf,aAAca,EAAcE,OAAO,CAACf,YAAY,CAChDC,aAAcY,EAAcE,OAAO,CAACd,YAAY,CAChDF,aAAcc,EAAcE,OAAO,CAAChB,YAAAA,AACrC,EALyDD,EAMvD,CAACU,EAAO,EAEX,OACCoB,EAAAA,GAAA,CAAC1B,EAAqB2B,QAAQ,CAAA,CAACC,MAAOtB,WACrCoB,EAAAA,GAAA,CAACxB,EAAeyB,QAAQ,CAAA,CAACC,MAAOJ,EAC9BnB,SAAAA,KAIL,EA2BCwB,iBAzBwB,IAAMC,EAAAA,UAAAA,CAAW9B,GA0BzC+B,gBAxBuB,AAACC,IACxB,GAAM,CAAEjC,aAAAA,CAAY,CAAE,CAAG+B,EAAAA,UAAAA,CAAW5B,GAEpC,OAAO+B,EAAAA,WAAAA,CACN,CAACC,EAAeC,IACRpC,EAAaiC,EAAUE,EAAOC,GAEtC,CAACpC,EAAciC,EAAS,CAE1B,EAgBCI,aAdoB,CAACJ,EAAkBK,KACvC,GAAM,CAAEvC,aAAAA,CAAY,CAAE,CAAGgC,EAAAA,UAAAA,CAAW5B,GACpC,OAAOJ,EAAakC,IAAaK,CAClC,EAYCC,aAVoB,CAACC,EAAkBF,KACvC,GAAM,CAAExC,aAAAA,CAAY,CAAE,CAAGiC,EAAAA,UAAAA,CAAW5B,GACpC,OAAOL,EAAa0C,IAAaF,CAClC,CAQA,CAAA"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.tsx"],"sourcesContent":["import {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react'\nimport type { ImproveClientSDK } from '@obelism/improve-sdk/client'\nimport type {\n\tImproveAnalyticPayload,\n\tImproveEventName,\n\tImproveSetupArgs,\n} from '@obelism/improve-sdk/types'\n\nexport type ImproveProviderProps = {\n\tchildren?: React.ReactNode\n}\n\nexport type ImproveContextType = {\n\tgetFlagValue: ImproveClientSDK['getFlagValue']\n\tgetTestValue: ImproveClientSDK['getTestValue']\n\tpostAnalytic: ImproveClientSDK['postAnalytic']\n}\n\nconst DEFAULT_VALUE: ImproveContextType = {\n\tgetFlagValue: () => null,\n\tgetTestValue: () => null,\n\tpostAnalytic: () => null,\n}\n\ntype ImproveStatus = 'loading' | 'setup' | 'error'\n\nconst ImproveStatusContext = createContext<ImproveStatus>('loading')\nconst ImproveContext = createContext<ImproveContextType>(DEFAULT_VALUE)\n\nexport const generateImproveProvider = (improveSetupArgs: ImproveSetupArgs) => {\n\tconst ImproveProvider = ({ children }: ImproveProviderProps) => {\n\t\tconst [status, setStatus] = useState<ImproveStatus>('loading')\n\n\t\tconst loadingSdk = useRef<boolean>(false)\n\t\tconst improveSdkRef = useRef<ImproveClientSDK | null>(null)\n\n\t\tuseEffect(() => {\n\t\t\tif (improveSdkRef.current || loadingSdk.current) return\n\t\t\tloadingSdk.current = true\n\t\t\tlet loaded = false\n\t\t\tlet aborted = false\n\n\t\t\timport('@obelism/improve-sdk/client')\n\t\t\t\t.then(async ({ ImproveClientSDK }) => {\n\t\t\t\t\tif (aborted) return\n\t\t\t\t\timproveSdkRef.current = new ImproveClientSDK(improveSetupArgs)\n\n\t\t\t\t\tif (!improveSetupArgs.config) {\n\t\t\t\t\t\tawait improveSdkRef.current.fetchConfig()\n\t\t\t\t\t}\n\n\t\t\t\t\tif (aborted) return\n\t\t\t\t\tloaded = true\n\t\t\t\t\tsetStatus('setup')\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tloadingSdk.current = false\n\t\t\t\t\tconsole.error(e)\n\t\t\t\t\tsetStatus('error')\n\t\t\t\t})\n\n\t\t\treturn () => {\n\t\t\t\tif (loaded) return\n\t\t\t\tloadingSdk.current = false\n\t\t\t\taborted = true\n\t\t\t}\n\t\t}, [])\n\n\t\tconst actions = useMemo(() => {\n\t\t\tif (status !== 'setup' || !improveSdkRef.current) return DEFAULT_VALUE\n\t\t\treturn {\n\t\t\t\tgetTestValue: improveSdkRef.current.getTestValue,\n\t\t\t\tpostAnalytic: improveSdkRef.current.postAnalytic,\n\t\t\t\tgetFlagValue: improveSdkRef.current.getFlagValue,\n\t\t\t}\n\t\t}, [status])\n\n\t\treturn (\n\t\t\t<ImproveStatusContext.Provider value={status}>\n\t\t\t\t<ImproveContext.Provider value={actions}>\n\t\t\t\t\t{children}\n\t\t\t\t</ImproveContext.Provider>\n\t\t\t</ImproveStatusContext.Provider>\n\t\t)\n\t}\n\n\tconst useImproveStatus = () => useContext(ImproveStatusContext)\n\n\tconst usePostAnalytic = (testSlug: string) => {\n\t\tconst { postAnalytic } = useContext(ImproveContext)\n\n\t\treturn useCallback(\n\t\t\t(event: ImproveEventName, payload?: ImproveAnalyticPayload | string) => {\n\t\t\t\treturn postAnalytic(testSlug, event, payload)\n\t\t\t},\n\t\t\t[postAnalytic, testSlug],\n\t\t)\n\t}\n\n\tconst useTestValue = (testSlug: string, fallback?: string) => {\n\t\tconst { getTestValue } = useContext(ImproveContext)\n\t\treturn getTestValue(testSlug) || fallback\n\t}\n\n\tconst useFlagValue = (flagSlug: string, fallback?: string) => {\n\t\tconst { getFlagValue } = useContext(ImproveContext)\n\t\treturn getFlagValue(flagSlug) || fallback\n\t}\n\n\treturn {\n\t\tImproveProvider,\n\t\tuseImproveStatus,\n\t\tusePostAnalytic,\n\t\tuseTestValue,\n\t\tuseFlagValue,\n\t}\n}\n"],"names":["DEFAULT_VALUE","getFlagValue","getTestValue","postAnalytic","ImproveStatusContext","createContext","ImproveContext","improveSetupArgs","ImproveProvider","children","status","setStatus","useState","loadingSdk","useRef","improveSdkRef","useEffect","current","loaded","aborted","then","ImproveClientSDK","config","fetchConfig","catch","e","console","error","actions","useMemo","_jsx","Provider","value","useImproveStatus","useContext","usePostAnalytic","testSlug","useCallback","event","payload","useTestValue","fallback","useFlagValue","flagSlug"],"mappings":"6GA0BA,IAAMA,EAAoC,CACzCC,aAAc,IAAM,KACpBC,aAAc,IAAM,KACpBC,aAAc,IAAM,IACrB,EAIMC,EAAuBC,EAAAA,aAAAA,CAA6B,WACpDC,EAAiBD,EAAAA,aAAAA,CAAkCL,mCAElB,AAACO,GAgFhC,CAAA,CACNC,gBAhFuB,CAAC,CAAEC,SAAAA,CAAQ,CAAwB,IAC1D,GAAM,CAACC,EAAQC,EAAU,CAAGC,EAAAA,QAAAA,CAAwB,WAE9CC,EAAaC,EAAAA,MAAAA,CAAgB,CAAA,GAC7BC,EAAgBD,EAAAA,MAAAA,CAAgC,MAEtDE,EAAAA,SAAAA,CAAU,KACT,GAAID,EAAcE,OAAO,EAAIJ,EAAWI,OAAO,CAAE,MACjDJ,CAAAA,EAAWI,OAAO,CAAG,CAAA,EACrB,IAAIC,EAAS,CAAA,EACTC,EAAU,CAAA,EAqBd,OAnBA,MAAA,CAAO,+BACLC,IAAI,CAAC,MAAO,CAAEC,iBAAAA,CAAgB,CAAE,IAChC,AAAIF,IACJJ,EAAcE,OAAO,CAAG,IAAII,EAAiBd,GAEzC,AAACA,EAAiBe,MAAM,EAC3B,MAAMP,EAAcE,OAAO,CAACM,WAAW,GAGpCJ,IACJD,EAAS,CAAA,EACTP,EAAU,UACX,GACCa,KAAK,CAAC,AAACC,IACPZ,EAAWI,OAAO,CAAG,CAAA,EACrBS,QAAQC,KAAK,CAACF,GACdd,EAAU,QACX,GAEM,KACFO,IACJL,EAAWI,OAAO,CAAG,CAAA,EACrBE,EAAU,CAAA,EACX,CACD,EAAG,EAAE,EAEL,IAAMS,EAAUC,EAAAA,OAAAA,CAAQ,IACvB,AAAInB,AAAW,UAAXA,GAAuBK,EAAcE,OAAO,CACzC,CACNf,aAAca,EAAcE,OAAO,CAACf,YAAY,CAChDC,aAAcY,EAAcE,OAAO,CAACd,YAAY,CAChDF,aAAcc,EAAcE,OAAO,CAAChB,YAAAA,AACrC,EALyDD,EAMvD,CAACU,EAAO,EAEX,OACCoB,EAAAA,GAAA,CAAC1B,EAAqB2B,QAAQ,CAAA,CAACC,MAAOtB,WACrCoB,EAAAA,GAAA,CAACxB,EAAeyB,QAAQ,CAAA,CAACC,MAAOJ,EAC9BnB,SAAAA,KAIL,EA2BCwB,iBAzBwB,IAAMC,EAAAA,UAAAA,CAAW9B,GA0BzC+B,gBAxBuB,AAACC,IACxB,GAAM,CAAEjC,aAAAA,CAAY,CAAE,CAAG+B,EAAAA,UAAAA,CAAW5B,GAEpC,OAAO+B,EAAAA,WAAAA,CACN,CAACC,EAAyBC,IAClBpC,EAAaiC,EAAUE,EAAOC,GAEtC,CAACpC,EAAciC,EAAS,CAE1B,EAgBCI,aAdoB,CAACJ,EAAkBK,KACvC,GAAM,CAAEvC,aAAAA,CAAY,CAAE,CAAGgC,EAAAA,UAAAA,CAAW5B,GACpC,OAAOJ,EAAakC,IAAaK,CAClC,EAYCC,aAVoB,CAACC,EAAkBF,KACvC,GAAM,CAAExC,aAAAA,CAAY,CAAE,CAAGiC,EAAAA,UAAAA,CAAW5B,GACpC,OAAOL,EAAa0C,IAAaF,CAClC,CAQA,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/index.tsx"],"sourcesContent":["import {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react'\nimport type { ImproveClientSDK } from '@obelism/improve-sdk/client'\nimport type { ImproveSetupArgs } from '@obelism/improve-sdk/types'\n\nexport type ImproveProviderProps = {\n\tchildren?: React.ReactNode\n}\n\nexport type ImproveContextType = {\n\tgetFlagValue: ImproveClientSDK['getFlagValue']\n\tgetTestValue: ImproveClientSDK['getTestValue']\n\tpostAnalytic: ImproveClientSDK['postAnalytic']\n}\n\nconst DEFAULT_VALUE: ImproveContextType = {\n\tgetFlagValue: () => null,\n\tgetTestValue: () => null,\n\tpostAnalytic: () => null,\n}\n\ntype ImproveStatus = 'loading' | 'setup' | 'error'\n\nconst ImproveStatusContext = createContext<ImproveStatus>('loading')\nconst ImproveContext = createContext<ImproveContextType>(DEFAULT_VALUE)\n\nexport const generateImproveProvider = (improveSetupArgs: ImproveSetupArgs) => {\n\tconst ImproveProvider = ({ children }: ImproveProviderProps) => {\n\t\tconst [status, setStatus] = useState<ImproveStatus>('loading')\n\n\t\tconst loadingSdk = useRef<boolean>(false)\n\t\tconst improveSdkRef = useRef<ImproveClientSDK | null>(null)\n\n\t\tuseEffect(() => {\n\t\t\tif (improveSdkRef.current || loadingSdk.current) return\n\t\t\tloadingSdk.current = true\n\t\t\tlet loaded = false\n\t\t\tlet aborted = false\n\n\t\t\timport('@obelism/improve-sdk/client')\n\t\t\t\t.then(async ({ ImproveClientSDK }) => {\n\t\t\t\t\tif (aborted) return\n\t\t\t\t\timproveSdkRef.current = new ImproveClientSDK(improveSetupArgs)\n\n\t\t\t\t\tif (!improveSetupArgs.config) {\n\t\t\t\t\t\tawait improveSdkRef.current.fetchConfig()\n\t\t\t\t\t}\n\n\t\t\t\t\tif (aborted) return\n\t\t\t\t\tloaded = true\n\t\t\t\t\tsetStatus('setup')\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tloadingSdk.current = false\n\t\t\t\t\tconsole.error(e)\n\t\t\t\t\tsetStatus('error')\n\t\t\t\t})\n\n\t\t\treturn () => {\n\t\t\t\tif (loaded) return\n\t\t\t\tloadingSdk.current = false\n\t\t\t\taborted = true\n\t\t\t}\n\t\t}, [])\n\n\t\tconst actions = useMemo(() => {\n\t\t\tif (status !== 'setup' || !improveSdkRef.current) return DEFAULT_VALUE\n\t\t\treturn {\n\t\t\t\tgetTestValue: improveSdkRef.current.getTestValue,\n\t\t\t\tpostAnalytic: improveSdkRef.current.postAnalytic,\n\t\t\t\tgetFlagValue: improveSdkRef.current.getFlagValue,\n\t\t\t}\n\t\t}, [status])\n\n\t\treturn (\n\t\t\t<ImproveStatusContext.Provider value={status}>\n\t\t\t\t<ImproveContext.Provider value={actions}>\n\t\t\t\t\t{children}\n\t\t\t\t</ImproveContext.Provider>\n\t\t\t</ImproveStatusContext.Provider>\n\t\t)\n\t}\n\n\tconst useImproveStatus = () => useContext(ImproveStatusContext)\n\n\tconst usePostAnalytic = (testSlug: string) => {\n\t\tconst { postAnalytic } = useContext(ImproveContext)\n\n\t\treturn useCallback(\n\t\t\t(event: string, message?: string) => {\n\t\t\t\treturn postAnalytic(testSlug, event, message)\n\t\t\t},\n\t\t\t[postAnalytic, testSlug],\n\t\t)\n\t}\n\n\tconst useTestValue = (testSlug: string, fallback?: string) => {\n\t\tconst { getTestValue } = useContext(ImproveContext)\n\t\treturn getTestValue(testSlug) || fallback\n\t}\n\n\tconst useFlagValue = (flagSlug: string, fallback?: string) => {\n\t\tconst { getFlagValue } = useContext(ImproveContext)\n\t\treturn getFlagValue(flagSlug) || fallback\n\t}\n\n\treturn {\n\t\tImproveProvider,\n\t\tuseImproveStatus,\n\t\tusePostAnalytic,\n\t\tuseTestValue,\n\t\tuseFlagValue,\n\t}\n}\n"],"names":["DEFAULT_VALUE","getFlagValue","getTestValue","postAnalytic","ImproveStatusContext","createContext","ImproveContext","generateImproveProvider","improveSetupArgs","ImproveProvider","children","status","setStatus","useState","loadingSdk","useRef","improveSdkRef","useEffect","current","loaded","aborted","then","ImproveClientSDK","config","fetchConfig","catch","e","console","error","actions","useMemo","_jsx","Provider","value","useImproveStatus","useContext","usePostAnalytic","testSlug","useCallback","event","message","useTestValue","fallback","useFlagValue","flagSlug"],"mappings":"qKAsBA,IAAMA,EAAoC,CACzCC,aAAc,IAAM,KACpBC,aAAc,IAAM,KACpBC,aAAc,IAAM,IACrB,EAIMC,EAAuBC,EAA6B,WACpDC,EAAiBD,EAAkCL,GAE5CO,EAA0B,AAACC,GAgFhC,CAAA,CACNC,gBAhFuB,CAAC,CAAEC,SAAAA,CAAQ,CAAwB,IAC1D,GAAM,CAACC,EAAQC,EAAU,CAAGC,EAAwB,WAE9CC,EAAaC,EAAgB,CAAA,GAC7BC,EAAgBD,EAAgC,MAEtDE,EAAU,KACT,GAAID,EAAcE,OAAO,EAAIJ,EAAWI,OAAO,CAAE,MACjDJ,CAAAA,EAAWI,OAAO,CAAG,CAAA,EACrB,IAAIC,EAAS,CAAA,EACTC,EAAU,CAAA,EAqBd,OAnBA,MAAA,CAAO,+BACLC,IAAI,CAAC,MAAO,CAAEC,iBAAAA,CAAgB,CAAE,IAChC,AAAIF,IACJJ,EAAcE,OAAO,CAAG,IAAII,EAAiBd,GAEzC,AAACA,EAAiBe,MAAM,EAC3B,MAAMP,EAAcE,OAAO,CAACM,WAAW,GAGpCJ,IACJD,EAAS,CAAA,EACTP,EAAU,UACX,GACCa,KAAK,CAAC,AAACC,IACPZ,EAAWI,OAAO,CAAG,CAAA,EACrBS,QAAQC,KAAK,CAACF,GACdd,EAAU,QACX,GAEM,KACFO,IACJL,EAAWI,OAAO,CAAG,CAAA,EACrBE,EAAU,CAAA,EACX,CACD,EAAG,EAAE,EAEL,IAAMS,EAAUC,EAAQ,IACvB,AAAInB,AAAW,UAAXA,GAAuBK,EAAcE,OAAO,CACzC,CACNhB,aAAcc,EAAcE,OAAO,CAAChB,YAAY,CAChDC,aAAca,EAAcE,OAAO,CAACf,YAAY,CAChDF,aAAce,EAAcE,OAAO,CAACjB,YAAAA,AACrC,EALyDD,EAMvD,CAACW,EAAO,EAEX,OACCoB,EAAC3B,EAAqB4B,QAAQ,CAAA,CAACC,MAAOtB,WACrCoB,EAACzB,EAAe0B,QAAQ,CAAA,CAACC,MAAOJ,EAC9BnB,SAAAA,KAIL,EA2BCwB,iBAzBwB,IAAMC,EAAW/B,GA0BzCgC,gBAxBuB,AAACC,IACxB,GAAM,CAAElC,aAAAA,CAAY,CAAE,CAAGgC,EAAW7B,GAEpC,OAAOgC,EACN,CAACC,EAAeC,IACRrC,EAAakC,EAAUE,EAAOC,GAEtC,CAACrC,EAAckC,EAAS,CAE1B,EAgBCI,aAdoB,CAACJ,EAAkBK,KACvC,GAAM,CAAExC,aAAAA,CAAY,CAAE,CAAGiC,EAAW7B,GACpC,OAAOJ,EAAamC,IAAaK,CAClC,EAYCC,aAVoB,CAACC,EAAkBF,KACvC,GAAM,CAAEzC,aAAAA,CAAY,CAAE,CAAGkC,EAAW7B,GACpC,OAAOL,EAAa2C,IAAaF,CAClC,CAQA,CAAA"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/index.tsx"],"sourcesContent":["import {\n\tcreateContext,\n\tuseCallback,\n\tuseContext,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n\tuseState,\n} from 'react'\nimport type { ImproveClientSDK } from '@obelism/improve-sdk/client'\nimport type {\n\tImproveAnalyticPayload,\n\tImproveEventName,\n\tImproveSetupArgs,\n} from '@obelism/improve-sdk/types'\n\nexport type ImproveProviderProps = {\n\tchildren?: React.ReactNode\n}\n\nexport type ImproveContextType = {\n\tgetFlagValue: ImproveClientSDK['getFlagValue']\n\tgetTestValue: ImproveClientSDK['getTestValue']\n\tpostAnalytic: ImproveClientSDK['postAnalytic']\n}\n\nconst DEFAULT_VALUE: ImproveContextType = {\n\tgetFlagValue: () => null,\n\tgetTestValue: () => null,\n\tpostAnalytic: () => null,\n}\n\ntype ImproveStatus = 'loading' | 'setup' | 'error'\n\nconst ImproveStatusContext = createContext<ImproveStatus>('loading')\nconst ImproveContext = createContext<ImproveContextType>(DEFAULT_VALUE)\n\nexport const generateImproveProvider = (improveSetupArgs: ImproveSetupArgs) => {\n\tconst ImproveProvider = ({ children }: ImproveProviderProps) => {\n\t\tconst [status, setStatus] = useState<ImproveStatus>('loading')\n\n\t\tconst loadingSdk = useRef<boolean>(false)\n\t\tconst improveSdkRef = useRef<ImproveClientSDK | null>(null)\n\n\t\tuseEffect(() => {\n\t\t\tif (improveSdkRef.current || loadingSdk.current) return\n\t\t\tloadingSdk.current = true\n\t\t\tlet loaded = false\n\t\t\tlet aborted = false\n\n\t\t\timport('@obelism/improve-sdk/client')\n\t\t\t\t.then(async ({ ImproveClientSDK }) => {\n\t\t\t\t\tif (aborted) return\n\t\t\t\t\timproveSdkRef.current = new ImproveClientSDK(improveSetupArgs)\n\n\t\t\t\t\tif (!improveSetupArgs.config) {\n\t\t\t\t\t\tawait improveSdkRef.current.fetchConfig()\n\t\t\t\t\t}\n\n\t\t\t\t\tif (aborted) return\n\t\t\t\t\tloaded = true\n\t\t\t\t\tsetStatus('setup')\n\t\t\t\t})\n\t\t\t\t.catch((e) => {\n\t\t\t\t\tloadingSdk.current = false\n\t\t\t\t\tconsole.error(e)\n\t\t\t\t\tsetStatus('error')\n\t\t\t\t})\n\n\t\t\treturn () => {\n\t\t\t\tif (loaded) return\n\t\t\t\tloadingSdk.current = false\n\t\t\t\taborted = true\n\t\t\t}\n\t\t}, [])\n\n\t\tconst actions = useMemo(() => {\n\t\t\tif (status !== 'setup' || !improveSdkRef.current) return DEFAULT_VALUE\n\t\t\treturn {\n\t\t\t\tgetTestValue: improveSdkRef.current.getTestValue,\n\t\t\t\tpostAnalytic: improveSdkRef.current.postAnalytic,\n\t\t\t\tgetFlagValue: improveSdkRef.current.getFlagValue,\n\t\t\t}\n\t\t}, [status])\n\n\t\treturn (\n\t\t\t<ImproveStatusContext.Provider value={status}>\n\t\t\t\t<ImproveContext.Provider value={actions}>\n\t\t\t\t\t{children}\n\t\t\t\t</ImproveContext.Provider>\n\t\t\t</ImproveStatusContext.Provider>\n\t\t)\n\t}\n\n\tconst useImproveStatus = () => useContext(ImproveStatusContext)\n\n\tconst usePostAnalytic = (testSlug: string) => {\n\t\tconst { postAnalytic } = useContext(ImproveContext)\n\n\t\treturn useCallback(\n\t\t\t(event: ImproveEventName, payload?: ImproveAnalyticPayload | string) => {\n\t\t\t\treturn postAnalytic(testSlug, event, payload)\n\t\t\t},\n\t\t\t[postAnalytic, testSlug],\n\t\t)\n\t}\n\n\tconst useTestValue = (testSlug: string, fallback?: string) => {\n\t\tconst { getTestValue } = useContext(ImproveContext)\n\t\treturn getTestValue(testSlug) || fallback\n\t}\n\n\tconst useFlagValue = (flagSlug: string, fallback?: string) => {\n\t\tconst { getFlagValue } = useContext(ImproveContext)\n\t\treturn getFlagValue(flagSlug) || fallback\n\t}\n\n\treturn {\n\t\tImproveProvider,\n\t\tuseImproveStatus,\n\t\tusePostAnalytic,\n\t\tuseTestValue,\n\t\tuseFlagValue,\n\t}\n}\n"],"names":["DEFAULT_VALUE","getFlagValue","getTestValue","postAnalytic","ImproveStatusContext","createContext","ImproveContext","generateImproveProvider","improveSetupArgs","ImproveProvider","children","status","setStatus","useState","loadingSdk","useRef","improveSdkRef","useEffect","current","loaded","aborted","then","ImproveClientSDK","config","fetchConfig","catch","e","console","error","actions","useMemo","_jsx","Provider","value","useImproveStatus","useContext","usePostAnalytic","testSlug","useCallback","event","payload","useTestValue","fallback","useFlagValue","flagSlug"],"mappings":"qKA0BA,IAAMA,EAAoC,CACzCC,aAAc,IAAM,KACpBC,aAAc,IAAM,KACpBC,aAAc,IAAM,IACrB,EAIMC,EAAuBC,EAA6B,WACpDC,EAAiBD,EAAkCL,GAE5CO,EAA0B,AAACC,GAgFhC,CAAA,CACNC,gBAhFuB,CAAC,CAAEC,SAAAA,CAAQ,CAAwB,IAC1D,GAAM,CAACC,EAAQC,EAAU,CAAGC,EAAwB,WAE9CC,EAAaC,EAAgB,CAAA,GAC7BC,EAAgBD,EAAgC,MAEtDE,EAAU,KACT,GAAID,EAAcE,OAAO,EAAIJ,EAAWI,OAAO,CAAE,MACjDJ,CAAAA,EAAWI,OAAO,CAAG,CAAA,EACrB,IAAIC,EAAS,CAAA,EACTC,EAAU,CAAA,EAqBd,OAnBA,MAAA,CAAO,+BACLC,IAAI,CAAC,MAAO,CAAEC,iBAAAA,CAAgB,CAAE,IAChC,AAAIF,IACJJ,EAAcE,OAAO,CAAG,IAAII,EAAiBd,GAEzC,AAACA,EAAiBe,MAAM,EAC3B,MAAMP,EAAcE,OAAO,CAACM,WAAW,GAGpCJ,IACJD,EAAS,CAAA,EACTP,EAAU,UACX,GACCa,KAAK,CAAC,AAACC,IACPZ,EAAWI,OAAO,CAAG,CAAA,EACrBS,QAAQC,KAAK,CAACF,GACdd,EAAU,QACX,GAEM,KACFO,IACJL,EAAWI,OAAO,CAAG,CAAA,EACrBE,EAAU,CAAA,EACX,CACD,EAAG,EAAE,EAEL,IAAMS,EAAUC,EAAQ,IACvB,AAAInB,AAAW,UAAXA,GAAuBK,EAAcE,OAAO,CACzC,CACNhB,aAAcc,EAAcE,OAAO,CAAChB,YAAY,CAChDC,aAAca,EAAcE,OAAO,CAACf,YAAY,CAChDF,aAAce,EAAcE,OAAO,CAACjB,YAAAA,AACrC,EALyDD,EAMvD,CAACW,EAAO,EAEX,OACCoB,EAAC3B,EAAqB4B,QAAQ,CAAA,CAACC,MAAOtB,WACrCoB,EAACzB,EAAe0B,QAAQ,CAAA,CAACC,MAAOJ,EAC9BnB,SAAAA,KAIL,EA2BCwB,iBAzBwB,IAAMC,EAAW/B,GA0BzCgC,gBAxBuB,AAACC,IACxB,GAAM,CAAElC,aAAAA,CAAY,CAAE,CAAGgC,EAAW7B,GAEpC,OAAOgC,EACN,CAACC,EAAyBC,IAClBrC,EAAakC,EAAUE,EAAOC,GAEtC,CAACrC,EAAckC,EAAS,CAE1B,EAgBCI,aAdoB,CAACJ,EAAkBK,KACvC,GAAM,CAAExC,aAAAA,CAAY,CAAE,CAAGiC,EAAW7B,GACpC,OAAOJ,EAAamC,IAAaK,CAClC,EAYCC,aAVoB,CAACC,EAAkBF,KACvC,GAAM,CAAEzC,aAAAA,CAAY,CAAE,CAAGkC,EAAW7B,GACpC,OAAOL,EAAa2C,IAAaF,CAClC,CAQA,CAAA"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@obelism/improve-sdk-react",
3
3
  "description": "Obelism Improve React SDK",
4
- "version": "0.5.2",
4
+ "version": "0.6.0",
5
5
  "keywords": [
6
6
  "ab-tests",
7
7
  "feature-flags",
@@ -50,7 +50,7 @@
50
50
  "bunchee": "^6.11.0",
51
51
  "eslint": "^10.6.0",
52
52
  "npm-run-all": "^4.1.5",
53
- "prettier": "^3.9.3",
53
+ "prettier": "^3.9.4",
54
54
  "typescript": "^6.0.3",
55
55
  "vitest": "^4.1.9"
56
56
  },
@@ -58,6 +58,6 @@
58
58
  "react": ">=18.0.0"
59
59
  },
60
60
  "dependencies": {
61
- "@obelism/improve-sdk": "^1.0.0"
61
+ "@obelism/improve-sdk": "^1.2.0"
62
62
  }
63
63
  }