{"version":3,"file":"PacerProvider.cjs","names":[],"sources":["../../src/provider/PacerProvider.tsx"],"sourcesContent":["import React, { createContext, useContext, useMemo } from 'react'\nimport type { ReactNode } from 'react'\nimport type {\n  AnyAsyncFunction,\n  AnyFunction,\n  AsyncBatcherOptions,\n  AsyncDebouncerOptions,\n  AsyncQueuerOptions,\n  AsyncRateLimiterOptions,\n  AsyncThrottlerOptions,\n  BatcherOptions,\n  DebouncerOptions,\n  QueuerOptions,\n  RateLimiterOptions,\n  ThrottlerOptions,\n} from '@tanstack/pacer'\n\n/* eslint-disable @eslint-react/no-context-provider, @eslint-react/no-use-context --\n * React <19: keep Context.Provider and useContext; `use` and `<Context>` as provider need React 19+.\n */\n\nexport interface PacerProviderOptions {\n  asyncBatcher?: Partial<AsyncBatcherOptions<any>>\n  asyncDebouncer?: Partial<AsyncDebouncerOptions<AnyAsyncFunction>>\n  asyncQueuer?: Partial<AsyncQueuerOptions<any>>\n  asyncRateLimiter?: Partial<AsyncRateLimiterOptions<AnyAsyncFunction>>\n  asyncThrottler?: Partial<AsyncThrottlerOptions<AnyAsyncFunction>>\n  batcher?: Partial<BatcherOptions<any>>\n  debouncer?: Partial<DebouncerOptions<AnyFunction>>\n  queuer?: Partial<QueuerOptions<any>>\n  rateLimiter?: Partial<RateLimiterOptions<AnyFunction>>\n  throttler?: Partial<ThrottlerOptions<AnyFunction>>\n}\n\ninterface PacerContextValue {\n  defaultOptions: PacerProviderOptions\n}\n\nconst PacerContext = createContext<PacerContextValue | null>(null)\n\nexport interface PacerProviderProps {\n  children: ReactNode\n  defaultOptions?: PacerProviderOptions\n}\n\nconst DEFAULT_OPTIONS: PacerProviderOptions = {}\n\nexport function PacerProvider({\n  children,\n  defaultOptions = DEFAULT_OPTIONS,\n}: PacerProviderProps) {\n  const contextValue: PacerContextValue = useMemo(\n    () => ({\n      defaultOptions,\n    }),\n    [defaultOptions],\n  )\n\n  return (\n    <PacerContext.Provider value={contextValue}>\n      {children}\n    </PacerContext.Provider>\n  )\n}\n\nexport function usePacerContext() {\n  return useContext(PacerContext)\n}\n\nexport function useDefaultPacerOptions() {\n  const context = useContext(PacerContext)\n  return context?.defaultOptions ?? {}\n}\n"],"mappings":";;;;;AAsCA,MAAM,wCAAuD,KAAK;AAOlE,MAAM,kBAAwC,EAAE;AAEhD,SAAgB,cAAc,EAC5B,UACA,iBAAiB,mBACI;CACrB,MAAM,yCACG,EACL,gBACD,GACD,CAAC,eAAe,CACjB;AAED,QACE,4CAAC,aAAa,UAAd,EAAuB,OAAO,cAEN,EADrB,SACqB;;AAI5B,SAAgB,kBAAkB;AAChC,8BAAkB,aAAa;;AAGjC,SAAgB,yBAAyB;AAEvC,8BAD2B,aAAa,EACxB,kBAAkB,EAAE"}