UNPKG

5.42 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/strategy.js"],"names":["semver","require","pickInits","deps","inits","push","pickRouter","lt","pickStatePromise","pickPreRenders","preRenders","Error","pickRenderer","pickAfterRenders","afterRenders","getLibs","strategy","list","Object","keys","reduce","elem","concat","filter","item","pos","self","indexOf","createStrategy","router","render","getStatePromise","libs","e","console","error","message","process","exit","module","exports"],"mappings":"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","file":"strategy.js","sourcesContent":["const semver = require('semver')\n\nconst pickInits = deps => {\n const inits = []\n if (deps['react-loadable']) {\n inits.push('react-loadable')\n }\n return inits\n}\n\nconst pickRouter = deps => {\n if (deps['react-router']) {\n if (semver.lt(deps['react-router'], '4.0.0')) {\n return 'react-router-v3'\n } else {\n return 'react-router-v4'\n }\n } else if (deps['react-router-dom']) {\n return 'react-router-v4'\n } else {\n return 'config-router'\n }\n}\n\nconst pickStatePromise = deps => {\n if (deps['redux']) {\n return 'config-redux'\n } else {\n return 'config-state'\n }\n}\n\nconst pickPreRenders = deps => {\n const preRenders = []\n if (deps['react-loadable']) {\n preRenders.push('react-loadable')\n }\n if (deps['react-redux']) {\n preRenders.push('react-redux')\n }\n if (deps['styled-components']) {\n if (deps['babel-plugin-styled-components']) {\n preRenders.push('styled-components')\n } else {\n throw new Error(\n 'Need to install \"babel-plugin-styled-components\" to be able to Server-Side Render styled-components'\n )\n }\n }\n return preRenders\n}\n\nconst pickRenderer = deps => {\n if (deps['react']) {\n if (semver.lt(deps['react'], '16.0.0')) {\n return 'react15'\n } else {\n return 'react16'\n }\n } else {\n throw new Error('Only support react in this profile for now')\n }\n}\n\nconst pickAfterRenders = deps => {\n const afterRenders = []\n if (deps['react-loadable']) {\n afterRenders.push('react-loadable')\n }\n if (deps['styled-components']) {\n afterRenders.push('styled-components')\n }\n if (deps['react-helmet']) {\n afterRenders.push('react-helmet')\n }\n return afterRenders\n}\n\nconst getLibs = strategy => {\n const list = Object.keys(strategy).reduce((list, elem) => {\n return list.concat(strategy[elem])\n }, [])\n return list.filter((item, pos, self) => self.indexOf(item) === pos)\n}\n\nconst createStrategy = deps => {\n try {\n const strategy = {}\n strategy.inits = pickInits(deps)\n strategy.router = pickRouter(deps)\n strategy.render = pickRenderer(deps)\n strategy.getStatePromise = pickStatePromise(deps)\n strategy.preRenders = pickPreRenders(deps)\n strategy.afterRenders = pickAfterRenders(deps)\n strategy.libs = getLibs(strategy)\n return strategy\n } catch (e) {\n console.error(\"We couldn't automatically figure out what plugins to use\")\n console.error(e.message)\n process.exit(-1)\n }\n}\n\nmodule.exports = createStrategy\n"]}
\No newline at end of file