UNPKG

oidc-client-rx

Version:

ReactiveX enhanced OIDC and OAuth2 protocol support for browser-based JavaScript applications

30 lines (29 loc) 1.05 kB
import { createContext, createMemo, mergeProps, splitProps, useContext } from "solid-js"; import { OidcSecurityService } from "../../oidc.security.service.js"; const InjectorContextVoidInjector = { get: (_token, _notFoundValue)=>{ throw new Error("Please wrap with a InjectorContext.Provider first"); } }; const InjectorContext = createContext(InjectorContextVoidInjector); function InjectorProvider(props) { const [local, others] = splitProps(props, [ "injector" ]); const providerProps = mergeProps(others, { value: local.injector }); return InjectorContext.Provider(providerProps); } function useInjector() { return useContext(InjectorContext); } function useOidcClient() { const injector = useInjector(); const oidcSecurityService = createMemo(()=>injector.get(OidcSecurityService)); return { injector, oidcSecurityService: oidcSecurityService() }; } export { InjectorContext, InjectorContextVoidInjector, InjectorProvider, useInjector, useOidcClient };