UNPKG

@wordpress/data

Version:
8 lines (7 loc) 1.55 kB
{ "version": 3, "sources": ["../../src/redux-store/combine-reducers.ts"], "sourcesContent": ["import type {\n\tReducer,\n\tAction,\n\tStateFromReducersMapObject,\n\tActionFromReducersMapObject,\n} from 'redux';\n\nexport function combineReducers< M >(\n\treducers: M\n): M[ keyof M ] extends Reducer< any, any > | undefined\n\t? Reducer<\n\t\t\tStateFromReducersMapObject< M >,\n\t\t\tActionFromReducersMapObject< M >\n\t >\n\t: never;\n\nexport function combineReducers( reducers: {\n\t[ key: string ]: Reducer< any, any >;\n} ) {\n\tconst keys = Object.keys( reducers );\n\n\treturn function combinedReducer(\n\t\tstate: StateFromReducersMapObject< typeof reducers > = {},\n\t\taction: Action\n\t) {\n\t\tconst nextState: StateFromReducersMapObject< typeof reducers > = {};\n\t\tlet hasChanged = false;\n\t\tfor ( const key of keys ) {\n\t\t\tconst reducer = reducers[ key ];\n\t\t\tconst prevStateForKey = state[ key ];\n\t\t\tconst nextStateForKey = reducer( prevStateForKey, action );\n\t\t\tnextState[ key ] = nextStateForKey;\n\t\t\thasChanged = hasChanged || nextStateForKey !== prevStateForKey;\n\t\t}\n\n\t\treturn hasChanged ? nextState : state;\n\t};\n}\n"], "mappings": ";AAgBO,SAAS,gBAAiB,UAE7B;AACH,QAAM,OAAO,OAAO,KAAM,QAAS;AAEnC,SAAO,SAAS,gBACf,QAAuD,CAAC,GACxD,QACC;AACD,UAAM,YAA2D,CAAC;AAClE,QAAI,aAAa;AACjB,eAAY,OAAO,MAAO;AACzB,YAAM,UAAU,SAAU,GAAI;AAC9B,YAAM,kBAAkB,MAAO,GAAI;AACnC,YAAM,kBAAkB,QAAS,iBAAiB,MAAO;AACzD,gBAAW,GAAI,IAAI;AACnB,mBAAa,cAAc,oBAAoB;AAAA,IAChD;AAEA,WAAO,aAAa,YAAY;AAAA,EACjC;AACD;", "names": [] }