provide-page
Version:
Provides automatic server-side rendering and actions (regardless of whether or not client has JavaScript enabled) to React components. Use in conjunction with `provide-router`.
44 lines (31 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
exports.default = getProviders;
var _provideRouter = require('provide-router');
var _provideRouter2 = _interopRequireDefault(_provideRouter);
var _createMemoryHistory = require('history/createMemoryHistory');
var _createMemoryHistory2 = _interopRequireDefault(_createMemoryHistory);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getProviders(defaultProviders, request) {
var providers = {};
for (var key in defaultProviders) {
providers[key] = _extends({}, defaultProviders[key]);
}
if (!providers.router) {
providers.router = (0, _provideRouter2.default)((0, _createMemoryHistory2.default)({
initialEntries: [request.originalUrl]
}));
}
if (providers.page) {
providers.page.state = _extends({}, providers.page.state, {
requestSession: request.session,
acceptJson: request.headers && request.headers.accept && request.headers.accept.indexOf('application/json') > -1
});
} else {
console.error('The `page` provider is missing from the `providers` object!');
}
return providers;
}