-
Notifications
You must be signed in to change notification settings - Fork 16
/
Copy pathreduxCookiesMiddleware.js.map
1 lines (1 loc) · 4.14 KB
/
reduxCookiesMiddleware.js.map
1
{"version":3,"sources":["../src/reduxCookiesMiddleware.js"],"names":["reduxCookiesMiddleware","paths","customOptions","options","logger","console","error","setCookie","defaultEqualityCheck","a","b","defaultDeleteCheck","value","_getVal","state","path","pathPartsList","split","index","length","pathPart","Object","hasOwnProperty","call","action","prevState","store","getState","result","next","nextState","keys","forEach","pathToState","prevVal","nextVal","equalityCheck","deleteCheck","name","JSON","stringify"],"mappings":";;;;;;;;AAAA;;;;;;AAEA;;;;;AAKA,IAAMA,yBAAyB,SAAzBA,sBAAyB,GAAoC;AAAA,QAAnCC,KAAmC,uEAA3B,EAA2B;AAAA,QAAvBC,aAAuB,uEAAP,EAAO;;AAC/D,QAAMC;AACFC,gBAAQC,QAAQC,KADd;AAEFC,sCAFE;AAGFC,8BAAsB,8BAACC,CAAD,EAAIC,CAAJ;AAAA,mBAAWD,MAAMC,CAAjB;AAAA,SAHpB;AAIFC,4BAAoB;AAAA,mBAAU,OAAOC,KAAP,KAAiB,WAA3B;AAAA;AAJlB,OAKCV,aALD,CAAN;;AAQA,QAAMW,UAAU,SAAVA,OAAU,CAACC,KAAD,EAAQC,IAAR,EAAiB;AAC7B,YAAMC,gBAAgBD,KAAKE,KAAL,CAAW,GAAX,CAAtB;AACA,YAAIL,QAAQE,KAAZ;AACA,YAAII,cAAJ;;AAEA,aAAKA,QAAQ,CAAb,EAAgBA,QAAQF,cAAcG,MAAtC,EAA8CD,SAAS,CAAvD,EAA0D;AACtD,gBAAME,WAAWJ,cAAcE,KAAd,CAAjB;;AAEA,gBAAIG,OAAOC,cAAP,CAAsBC,IAAtB,CAA2BX,KAA3B,EAAkCQ,QAAlC,CAAJ,EAAiD;AAC7CR,wBAAQA,MAAMQ,QAAN,CAAR;AACH,aAFD,MAEO;AACHjB,wBAAQC,MAAR,0CAAsDW,IAAtD;AACA;AACH;AACJ;;AAED,eAAQG,UAAUF,cAAcG,MAAzB,GAAmCP,KAAnC,GAA2C,IAAlD;AACH,KAjBD;;AAmBA,WAAO;AAAA,eAAS;AAAA,mBAAQ,UAACY,MAAD,EAAY;AAChC,oBAAMC,YAAYC,MAAMC,QAAN,EAAlB;AACA,oBAAMC,SAASC,KAAKL,MAAL,CAAf;AACA,oBAAMM,YAAYJ,MAAMC,QAAN,EAAlB;;AAEAN,uBAAOU,IAAP,CAAY9B,KAAZ,EAAmB+B,OAAnB,CAA2B,UAACC,WAAD,EAAiB;AACxC,wBAAMC,UAAUrB,QAAQY,SAAR,EAAmBQ,WAAnB,CAAhB;AACA,wBAAME,UAAUtB,QAAQiB,SAAR,EAAmBG,WAAnB,CAAhB;AACA,wBAAMnB,QAAQb,MAAMgC,WAAN,CAAd;AACA,wBAAMG,gBAAgBtB,MAAMsB,aAAN,IAAuBjC,QAAQK,oBAArD;AACA,wBAAM6B,cAAcvB,MAAMuB,WAAN,IAAqBlC,QAAQQ,kBAAjD;;AAEA,wBAAI,CAACyB,cAAcF,OAAd,EAAuBC,OAAvB,CAAL,EAAsC;AAClC,4BAAIE,YAAYF,OAAZ,CAAJ,EAA0B;AACtBhC,oCAAQI,SAAR,CAAkBO,MAAMwB,IAAxB,EAA8BC,KAAKC,SAAL,CAAeL,OAAf,CAA9B,EAAuD,CAAvD;AACH,yBAFD,MAEO;AACHhC,oCAAQI,SAAR,CAAkBO,MAAMwB,IAAxB,EAA8BC,KAAKC,SAAL,CAAeL,OAAf,CAA9B;AACH;AACJ;AACJ,iBAdD;;AAgBA,uBAAOP,MAAP;AACH,aAtBe;AAAA,SAAT;AAAA,KAAP;AAuBH,CAnDD;;kBAqDe5B,sB","file":"reduxCookiesMiddleware.js","sourcesContent":["import setCookie from './cookieApi';\n\n/**\n * Middleware to persist state in cookies.\n * @param {Object} paths\n * @param {Object} customOptions\n */\nconst reduxCookiesMiddleware = (paths = {}, customOptions = {}) => {\n const options = {\n logger: console.error,\n setCookie,\n defaultEqualityCheck: (a, b) => (a === b),\n defaultDeleteCheck: value => (typeof value === 'undefined'),\n ...customOptions\n };\n\n const _getVal = (state, path) => {\n const pathPartsList = path.split('.');\n let value = state;\n let index;\n\n for (index = 0; index < pathPartsList.length; index += 1) {\n const pathPart = pathPartsList[index];\n\n if (Object.hasOwnProperty.call(value, pathPart)) {\n value = value[pathPart];\n } else {\n options.logger(`state not found at store.getState().${path}`);\n break;\n }\n }\n\n return (index === pathPartsList.length) ? value : null;\n };\n\n return store => next => (action) => {\n const prevState = store.getState();\n const result = next(action);\n const nextState = store.getState();\n\n Object.keys(paths).forEach((pathToState) => {\n const prevVal = _getVal(prevState, pathToState);\n const nextVal = _getVal(nextState, pathToState);\n const state = paths[pathToState];\n const equalityCheck = state.equalityCheck || options.defaultEqualityCheck;\n const deleteCheck = state.deleteCheck || options.defaultDeleteCheck;\n\n if (!equalityCheck(prevVal, nextVal)) {\n if (deleteCheck(nextVal)) {\n options.setCookie(state.name, JSON.stringify(nextVal), 0);\n } else {\n options.setCookie(state.name, JSON.stringify(nextVal));\n }\n }\n });\n\n return result;\n };\n};\n\nexport default reduxCookiesMiddleware;\n"]}