• Creates a selector to retrieve the cached well-known response from Redux state.

    This is a factory function that works with any Redux store structure, as long as the wellknownApi reducer is mounted at the 'wellknown' path.

    Parameters

    • wellknownUrl: string

      The well-known endpoint URL used as the cache key

    Returns (state: RootState, ...params: []) => undefined | WellKnownResponse & {
        clearCache: () => void;
        resetResultsCount: () => void;
        resultsCount: () => number;
    } & {
        dependencies: [
            (
                state: RootState,
            ) =>
                | {
                    data?: undefined;
                    endpointName?: string;
                    error?: undefined;
                    fulfilledTimeStamp?: undefined;
                    originalArgs?: undefined;
                    requestId?: undefined;
                    startedTimeStamp?: undefined;
                    status: uninitialized;
                } & {
                    isError: false;
                    isLoading: false;
                    isSuccess: false;
                    isUninitialized: true;
                    status: uninitialized;
                }
                | never
                | never
                | never
                | never
                | never
                | {
                    data: WellKnownResponse;
                    endpointName: string;
                    error: undefined;
                    fulfilledTimeStamp: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: fulfilled;
                } & {
                    isError: false;
                    isLoading: false;
                    isSuccess: true;
                    isUninitialized: false;
                    status: fulfilled;
                }
                | never
                | never
                | {
                    data?: WellKnownResponse;
                    endpointName: string;
                    error?: FetchBaseQueryError
                    | SerializedError;
                    fulfilledTimeStamp?: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: pending;
                } & {
                    isError: false;
                    isLoading: true;
                    isSuccess: false;
                    isUninitialized: false;
                    status: pending;
                }
                | never
                | never
                | never
                | never
                | never
                | {
                    data?: WellKnownResponse;
                    endpointName: string;
                    error: FetchBaseQueryError
                    | SerializedError;
                    fulfilledTimeStamp?: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: rejected;
                } & {
                    isError: true;
                    isLoading: false;
                    isSuccess: false;
                    isUninitialized: false;
                    status: rejected;
                },
        ];
        dependencyRecomputations: () => number;
        lastResult: () => undefined | WellKnownResponse;
        memoizedResultFunc: (
            ...resultFuncArgs: [
                | {
                    data?: undefined;
                    endpointName?: string;
                    error?: undefined;
                    fulfilledTimeStamp?: undefined;
                    originalArgs?: undefined;
                    requestId?: undefined;
                    startedTimeStamp?: undefined;
                    status: uninitialized;
                } & {
                    isError: false;
                    isLoading: false;
                    isSuccess: false;
                    isUninitialized: true;
                    status: uninitialized;
                }
                | never
                | never
                | never
                | never
                | never
                | {
                    data: WellKnownResponse;
                    endpointName: string;
                    error: undefined;
                    fulfilledTimeStamp: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: fulfilled;
                } & {
                    isError: false;
                    isLoading: false;
                    isSuccess: true;
                    isUninitialized: false;
                    status: fulfilled;
                }
                | never
                | never
                | {
                    data?: WellKnownResponse;
                    endpointName: string;
                    error?: FetchBaseQueryError
                    | SerializedError;
                    fulfilledTimeStamp?: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: pending;
                } & {
                    isError: false;
                    isLoading: true;
                    isSuccess: false;
                    isUninitialized: false;
                    status: pending;
                }
                | never
                | never
                | never
                | never
                | never
                | {
                    data?: WellKnownResponse;
                    endpointName: string;
                    error: FetchBaseQueryError
                    | SerializedError;
                    fulfilledTimeStamp?: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: rejected;
                } & {
                    isError: true;
                    isLoading: false;
                    isSuccess: false;
                    isUninitialized: false;
                    status: rejected;
                },
            ],
        ) => undefined
        | WellKnownResponse & {
            clearCache: () => void;
            resetResultsCount: () => void;
            resultsCount: () => number;
        };
        recomputations: () => number;
        resetDependencyRecomputations: () => void;
        resetRecomputations: () => void;
        resultFunc: (
            ...resultFuncArgs: [
                | {
                    data?: undefined;
                    endpointName?: string;
                    error?: undefined;
                    fulfilledTimeStamp?: undefined;
                    originalArgs?: undefined;
                    requestId?: undefined;
                    startedTimeStamp?: undefined;
                    status: uninitialized;
                } & {
                    isError: false;
                    isLoading: false;
                    isSuccess: false;
                    isUninitialized: true;
                    status: uninitialized;
                }
                | never
                | never
                | never
                | never
                | never
                | {
                    data: WellKnownResponse;
                    endpointName: string;
                    error: undefined;
                    fulfilledTimeStamp: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: fulfilled;
                } & {
                    isError: false;
                    isLoading: false;
                    isSuccess: true;
                    isUninitialized: false;
                    status: fulfilled;
                }
                | never
                | never
                | {
                    data?: WellKnownResponse;
                    endpointName: string;
                    error?: FetchBaseQueryError
                    | SerializedError;
                    fulfilledTimeStamp?: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: pending;
                } & {
                    isError: false;
                    isLoading: true;
                    isSuccess: false;
                    isUninitialized: false;
                    status: pending;
                }
                | never
                | never
                | never
                | never
                | never
                | {
                    data?: WellKnownResponse;
                    endpointName: string;
                    error: FetchBaseQueryError
                    | SerializedError;
                    fulfilledTimeStamp?: number;
                    originalArgs: string;
                    requestId: string;
                    startedTimeStamp: number;
                    status: rejected;
                } & {
                    isError: true;
                    isLoading: false;
                    isSuccess: false;
                    isUninitialized: false;
                    status: rejected;
                },
            ],
        ) => undefined
        | WellKnownResponse;
    } & {
        argsMemoize: <Func extends AnyFunction>(
            func: Func,
            options?: WeakMapMemoizeOptions<ReturnType<Func>>,
        ) => Func & {
            clearCache: () => void;
            resetResultsCount: () => void;
            resultsCount: () => number;
        };
        memoize: <Func extends AnyFunction>(
            func: Func,
            options?: WeakMapMemoizeOptions<ReturnType<Func>>,
        ) => Func & {
            clearCache: () => void;
            resetResultsCount: () => void;
            resultsCount: () => number;
        };
    }

    A selector function that extracts the WellKnownResponse from state

      • (state: RootState, ...params: []): undefined | WellKnownResponse
      • A function that takes a state and returns data that is based on that state.

        Parameters

        • state: RootState

          The first argument, often a Redux root state object.

        • ...params: []

          All additional arguments passed into the selector.

        Returns undefined | WellKnownResponse

        A derived value from the state.

    • clearCache: () => void
    • resetResultsCount: () => void
    • resultsCount: () => number
    • dependencies: [
          (
              state: RootState,
          ) =>
              | {
                  data?: undefined;
                  endpointName?: string;
                  error?: undefined;
                  fulfilledTimeStamp?: undefined;
                  originalArgs?: undefined;
                  requestId?: undefined;
                  startedTimeStamp?: undefined;
                  status: uninitialized;
              } & {
                  isError: false;
                  isLoading: false;
                  isSuccess: false;
                  isUninitialized: true;
                  status: uninitialized;
              }
              | never
              | never
              | never
              | never
              | never
              | {
                  data: WellKnownResponse;
                  endpointName: string;
                  error: undefined;
                  fulfilledTimeStamp: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: fulfilled;
              } & {
                  isError: false;
                  isLoading: false;
                  isSuccess: true;
                  isUninitialized: false;
                  status: fulfilled;
              }
              | never
              | never
              | {
                  data?: WellKnownResponse;
                  endpointName: string;
                  error?: FetchBaseQueryError
                  | SerializedError;
                  fulfilledTimeStamp?: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: pending;
              } & {
                  isError: false;
                  isLoading: true;
                  isSuccess: false;
                  isUninitialized: false;
                  status: pending;
              }
              | never
              | never
              | never
              | never
              | never
              | {
                  data?: WellKnownResponse;
                  endpointName: string;
                  error: FetchBaseQueryError
                  | SerializedError;
                  fulfilledTimeStamp?: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: rejected;
              } & {
                  isError: true;
                  isLoading: false;
                  isSuccess: false;
                  isUninitialized: false;
                  status: rejected;
              },
      ]

      The array of the input selectors used by createSelector to compose the combiner (memoizedResultFunc).

    • dependencyRecomputations: () => number

      Counts the number of times the input selectors (dependencies) have been recalculated. This is distinct from recomputations, which tracks the recalculations of the result function.

      5.0.0

    • lastResult: () => undefined | WellKnownResponse

      The last result calculated by memoizedResultFunc.

    • memoizedResultFunc: (
          ...resultFuncArgs: [
              | {
                  data?: undefined;
                  endpointName?: string;
                  error?: undefined;
                  fulfilledTimeStamp?: undefined;
                  originalArgs?: undefined;
                  requestId?: undefined;
                  startedTimeStamp?: undefined;
                  status: uninitialized;
              } & {
                  isError: false;
                  isLoading: false;
                  isSuccess: false;
                  isUninitialized: true;
                  status: uninitialized;
              }
              | never
              | never
              | never
              | never
              | never
              | {
                  data: WellKnownResponse;
                  endpointName: string;
                  error: undefined;
                  fulfilledTimeStamp: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: fulfilled;
              } & {
                  isError: false;
                  isLoading: false;
                  isSuccess: true;
                  isUninitialized: false;
                  status: fulfilled;
              }
              | never
              | never
              | {
                  data?: WellKnownResponse;
                  endpointName: string;
                  error?: FetchBaseQueryError
                  | SerializedError;
                  fulfilledTimeStamp?: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: pending;
              } & {
                  isError: false;
                  isLoading: true;
                  isSuccess: false;
                  isUninitialized: false;
                  status: pending;
              }
              | never
              | never
              | never
              | never
              | never
              | {
                  data?: WellKnownResponse;
                  endpointName: string;
                  error: FetchBaseQueryError
                  | SerializedError;
                  fulfilledTimeStamp?: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: rejected;
              } & {
                  isError: true;
                  isLoading: false;
                  isSuccess: false;
                  isUninitialized: false;
                  status: rejected;
              },
          ],
      ) => undefined
      | WellKnownResponse & {
          clearCache: () => void;
          resetResultsCount: () => void;
          resultsCount: () => number;
      }

      The memoized version of resultFunc.

    • recomputations: () => number

      Counts the number of times memoizedResultFunc has been recalculated.

    • resetDependencyRecomputations: () => void

      Resets the count dependencyRecomputations for the input selectors (dependencies) of a memoized selector.

      5.0.0

    • resetRecomputations: () => void

      Resets the count of recomputations count to 0.

    • resultFunc: (
          ...resultFuncArgs: [
              | {
                  data?: undefined;
                  endpointName?: string;
                  error?: undefined;
                  fulfilledTimeStamp?: undefined;
                  originalArgs?: undefined;
                  requestId?: undefined;
                  startedTimeStamp?: undefined;
                  status: uninitialized;
              } & {
                  isError: false;
                  isLoading: false;
                  isSuccess: false;
                  isUninitialized: true;
                  status: uninitialized;
              }
              | never
              | never
              | never
              | never
              | never
              | {
                  data: WellKnownResponse;
                  endpointName: string;
                  error: undefined;
                  fulfilledTimeStamp: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: fulfilled;
              } & {
                  isError: false;
                  isLoading: false;
                  isSuccess: true;
                  isUninitialized: false;
                  status: fulfilled;
              }
              | never
              | never
              | {
                  data?: WellKnownResponse;
                  endpointName: string;
                  error?: FetchBaseQueryError
                  | SerializedError;
                  fulfilledTimeStamp?: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: pending;
              } & {
                  isError: false;
                  isLoading: true;
                  isSuccess: false;
                  isUninitialized: false;
                  status: pending;
              }
              | never
              | never
              | never
              | never
              | never
              | {
                  data?: WellKnownResponse;
                  endpointName: string;
                  error: FetchBaseQueryError
                  | SerializedError;
                  fulfilledTimeStamp?: number;
                  originalArgs: string;
                  requestId: string;
                  startedTimeStamp: number;
                  status: rejected;
              } & {
                  isError: true;
                  isLoading: false;
                  isSuccess: false;
                  isUninitialized: false;
                  status: rejected;
              },
          ],
      ) => undefined
      | WellKnownResponse

      The final function passed to createSelector. Otherwise known as the combiner.

    • argsMemoize: <Func extends AnyFunction>(
          func: Func,
          options?: WeakMapMemoizeOptions<ReturnType<Func>>,
      ) => Func & {
          clearCache: () => void;
          resetResultsCount: () => void;
          resultsCount: () => number;
      }

      The optional memoize function that is used to memoize the arguments passed into the output selector generated by createSelector (e.g., lruMemoize or weakMapMemoize).

      When passed directly into createSelector, it overrides the argsMemoize function initially passed into createSelectorCreator. If none was initially provided, weakMapMemoize will be used.

      import { createSelector, weakMapMemoize } from 'reselect'

      const selectItemsByCategory = createSelector(
      [
      (state: RootState) => state.items,
      (state: RootState, category: string) => category
      ],
      (items, category) => items.filter(item => item.category === category),
      { argsMemoize: weakMapMemoize }
      )
      weakMapMemoize
      

      5.0.0

    • memoize: <Func extends AnyFunction>(
          func: Func,
          options?: WeakMapMemoizeOptions<ReturnType<Func>>,
      ) => Func & {
          clearCache: () => void;
          resetResultsCount: () => void;
          resultsCount: () => number;
      }

      The memoize function that is used to memoize the resultFunc inside createSelector (e.g., lruMemoize or weakMapMemoize).

      When passed directly into createSelector, it overrides the memoize function initially passed into createSelectorCreator.

      import { createSelector, weakMapMemoize } from 'reselect'

      const selectItemsByCategory = createSelector(
      [
      (state: RootState) => state.items,
      (state: RootState, category: string) => category
      ],
      (items, category) => items.filter(item => item.category === category),
      { memoize: weakMapMemoize }
      )

      5.0.0

    const selector = createWellknownSelector(wellknownUrl);
    const wellknownResponse = selector(store.getState());

    if (wellknownResponse?.authorization_endpoint) {
    // Use the authorization endpoint
    }