import VuexPersist from 'vuex-persist' import Cookies from 'js-cookie' export default ({ store, ssrContext }) => { // Cookie Store for user/auth (ssr ajax auth) const cookieModules = ['user'] const startsWithCookieRegex = new RegExp(`^(${cookieModules.join('|')})/`) new VuexPersist({ filter: mutation => startsWithCookieRegex.test(mutation.type), restoreState: key => { try { return ssrContext ? JSON.parse( require('cookie').parse(ssrContext.req.headers.cookie || '')[key] ) : Cookies.getJSON(key) } catch (e) { return {} } }, saveState: (key, state) => Cookies.set(key, state, { expires: 365 }), modules: cookieModules }).plugin(store) }