Options
All
  • Public
  • Public/Protected
  • All
Menu

Index

Type aliases

PromiseFunction

PromiseFunction: () => Promise<any>

Type declaration

    • (): Promise<any>
    • Returns Promise<any>

Functions

createAsyncPagingWatcher

  • createAsyncPagingWatcher(config?: WatcherConfig): () => Generator<ForkEffect<never>, void, unknown>
  • Create a saga watcher. It works closely with the function createAsyncPagingReducer creating a reducer with the same matched prefix action type

    Parameters

    • config: WatcherConfig = ...
      // Saga watcher
      const watchFetchCart = createAsyncPagingWatcher({
       actionPrefix: 'FETCH_PRODUCTS',
       getPromises: (state, action) => [() => api.fetchProduct({ limit: action.payload.limit, offset: action.payload.firstOffset ? 0 : state.products.offset })]
      });
      
      function* rootSaga() {
       yield all([
         watchFetchCart()
       ]);
      }
      
      // Reducer
      const products = createAsyncPagingReducer('FETCH_PRODUCTS');
      

    Returns () => Generator<ForkEffect<never>, void, unknown>

      • (): Generator<ForkEffect<never>, void, unknown>
      • Returns Generator<ForkEffect<never>, void, unknown>

createAsyncWatcher

  • createAsyncWatcher(config?: WatcherConfig): () => Generator<ForkEffect<never>, void, unknown>
  • Create a saga watcher. It works closely with the function createAsyncReducer creating a reducer with the same matched prefix action type

    Parameters

    • config: WatcherConfig = ...
      // Saga watcher
      const watchFetchCart = createAsyncWatcher({
       actionPrefix: 'FETCH_CART',
       getPromises: () => [() => api.fetchCart()]
      });
      
      function* rootSaga() {
       yield all([
         watchFetchCart()
       ]);
      }
      
      // Reducer
      const carts = createAsyncReducer('FETCH_CART')
      

    Returns () => Generator<ForkEffect<never>, void, unknown>

      • (): Generator<ForkEffect<never>, void, unknown>
      • Returns Generator<ForkEffect<never>, void, unknown>

runAsync

  • runAsync(config: IAsyncConfig, rootAction: IAsyncAction): Generator<CallEffect<unknown> | ForkEffect<Generator<SelectEffect | PutEffect<any> | CallEffect<unknown> | AllEffect<unknown> | CancelledEffect, void, any>> | TakeEffect | CancelEffect, void, unknown>
  • Function for helping running async task having status pending, success, fail and cancel

    Parameters

    • config: IAsyncConfig
    • rootAction: IAsyncAction
      // Example
      function* saga() {
       const task = yield fork(runAsync, {
         getPromises: () => [() => api.fetchCart()],
         statuses: {
           pending: ActionTypeMaker.PENDING('FETCH_CART'),
           success: ActionTypeMaker.SUCCESS('FETCH_CART'),
           fail: ActionTypeMaker.FAIL('FETCH_CART'),
           reset: ActionTypeMaker.RESET('FETCH_CART'),
           cancel: ActionTypeMaker.CANCEL('FETCH_CART'),
         }
        });
      
       // Wait if success or fail
       yield take([ActionTypeMaker.SUCCESS('FETCH_CART'), ActionTypeMaker.FAIL('FETCH_CART')])
      }
      

    Returns Generator<CallEffect<unknown> | ForkEffect<Generator<SelectEffect | PutEffect<any> | CallEffect<unknown> | AllEffect<unknown> | CancelledEffect, void, any>> | TakeEffect | CancelEffect, void, unknown>

Legend

  • Function
  • Function with type parameter
  • Type alias
  • Interface
  • Class

Generated using TypeDoc