{"version":3,"sources":["../../../../src/client/components/router-reducer/router-reducer.ts"],"sourcesContent":["import {\n  ACTION_NAVIGATE,\n  ACTION_SERVER_PATCH,\n  ACTION_RESTORE,\n  ACTION_REFRESH,\n  ACTION_HMR_REFRESH,\n  ACTION_SERVER_ACTION,\n} from './router-reducer-types'\nimport type {\n  ReducerActions,\n  ReducerState,\n  ReadonlyReducerState,\n} from './router-reducer-types'\nimport { navigateReducer } from './reducers/navigate-reducer'\nimport { serverPatchReducer } from './reducers/server-patch-reducer'\nimport { restoreReducer } from './reducers/restore-reducer'\nimport { refreshReducer } from './reducers/refresh-reducer'\nimport { serverActionReducer } from './reducers/server-action-reducer'\n\n/**\n * Reducer that handles the app-router state updates.\n */\nfunction clientReducer(\n  state: ReadonlyReducerState,\n  action: ReducerActions\n): ReducerState {\n  switch (action.type) {\n    case ACTION_NAVIGATE: {\n      return navigateReducer(state, action)\n    }\n    case ACTION_SERVER_PATCH: {\n      return serverPatchReducer(state, action)\n    }\n    case ACTION_RESTORE: {\n      return restoreReducer(state, action)\n    }\n    case ACTION_REFRESH: {\n      return refreshReducer(state, action)\n    }\n    case ACTION_HMR_REFRESH: {\n      if (process.env.NODE_ENV === 'development') {\n        const { hmrRefreshReducer } =\n          require('./reducers/hmr-refresh-reducer') as typeof import('./reducers/hmr-refresh-reducer')\n        return hmrRefreshReducer(state, action)\n      } else {\n        throw new Error(\n          'hmrRefresh can only be used in development mode. Please use refresh instead.'\n        )\n      }\n    }\n    case ACTION_SERVER_ACTION: {\n      return serverActionReducer(state, action)\n    }\n    // This case should never be hit as dispatch is strongly typed.\n    default:\n      throw new Error('Unknown action')\n  }\n}\n\nfunction serverReducer(\n  state: ReadonlyReducerState,\n  _action: ReducerActions\n): ReducerState {\n  return state\n}\n\n// we don't run the client reducer on the server, so we use a noop function for better tree shaking\nexport const reducer =\n  typeof window === 'undefined' ? serverReducer : clientReducer\n"],"names":["reducer","clientReducer","state","action","type","ACTION_NAVIGATE","navigateReducer","ACTION_SERVER_PATCH","serverPatchReducer","ACTION_RESTORE","restoreReducer","ACTION_REFRESH","refreshReducer","ACTION_HMR_REFRESH","process","env","NODE_ENV","hmrRefreshReducer","require","Error","ACTION_SERVER_ACTION","serverActionReducer","serverReducer","_action","window"],"mappings":";;;;+BAmEaA;;;eAAAA;;;oCA5DN;iCAMyB;oCACG;gCACJ;gCACA;qCACK;AAEpC;;CAEC,GACD,SAASC,cACPC,KAA2B,EAC3BC,MAAsB;IAEtB,OAAQA,OAAOC,IAAI;QACjB,KAAKC,mCAAe;YAAE;gBACpB,OAAOC,IAAAA,gCAAe,EAACJ,OAAOC;YAChC;QACA,KAAKI,uCAAmB;YAAE;gBACxB,OAAOC,IAAAA,sCAAkB,EAACN,OAAOC;YACnC;QACA,KAAKM,kCAAc;YAAE;gBACnB,OAAOC,IAAAA,8BAAc,EAACR,OAAOC;YAC/B;QACA,KAAKQ,kCAAc;YAAE;gBACnB,OAAOC,IAAAA,8BAAc,EAACV,OAAOC;YAC/B;QACA,KAAKU,sCAAkB;YAAE;gBACvB,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,eAAe;oBAC1C,MAAM,EAAEC,iBAAiB,EAAE,GACzBC,QAAQ;oBACV,OAAOD,kBAAkBf,OAAOC;gBAClC,OAAO;oBACL,MAAM,qBAEL,CAFK,IAAIgB,MACR,iFADI,qBAAA;+BAAA;oCAAA;sCAAA;oBAEN;gBACF;YACF;QACA,KAAKC,wCAAoB;YAAE;gBACzB,OAAOC,IAAAA,wCAAmB,EAACnB,OAAOC;YACpC;QACA,+DAA+D;QAC/D;YACE,MAAM,qBAA2B,CAA3B,IAAIgB,MAAM,mBAAV,qBAAA;uBAAA;4BAAA;8BAAA;YAA0B;IACpC;AACF;AAEA,SAASG,cACPpB,KAA2B,EAC3BqB,OAAuB;IAEvB,OAAOrB;AACT;AAGO,MAAMF,UACX,OAAOwB,WAAW,cAAcF,gBAAgBrB","ignoreList":[0]}