react-static
Version:
A progressive static site generator for React
45 lines (34 loc) • 5.27 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = makePageRoutes;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function makePageRoutes(_ref) {
var items = _ref.items,
pageSize = _ref.pageSize,
_ref$pageToken = _ref.pageToken,
pageToken = _ref$pageToken === void 0 ? 'page' : _ref$pageToken,
route = _ref.route,
decorate = _ref.decorate;
var itemsCopy = (0, _toConsumableArray2["default"])(items); // Make a copy of the items
var pages = []; // Make an array for all of the different pages
while (itemsCopy.length) {
// Splice out all of the items into separate pages using a set pageSize
pages.push(itemsCopy.splice(0, pageSize));
}
var totalPages = pages.length; // Move the first page out of pagination. This is so page one doesn't require a page number.
var firstPage = pages[0];
var routes = [_objectSpread(_objectSpread({}, route), decorate(firstPage, 1, totalPages))].concat((0, _toConsumableArray2["default"])(pages.map(function (page, i) {
return _objectSpread(_objectSpread({}, route), {}, {
// route defaults
path: "".concat(route.path, "/").concat(pageToken, "/").concat(i + 1)
}, decorate(page, i + 1, totalPages));
})));
return routes;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ub2RlL21ha2VQYWdlUm91dGVzLmpzIl0sIm5hbWVzIjpbIm1ha2VQYWdlUm91dGVzIiwiaXRlbXMiLCJwYWdlU2l6ZSIsInBhZ2VUb2tlbiIsInJvdXRlIiwiZGVjb3JhdGUiLCJpdGVtc0NvcHkiLCJwYWdlcyIsImxlbmd0aCIsInB1c2giLCJzcGxpY2UiLCJ0b3RhbFBhZ2VzIiwiZmlyc3RQYWdlIiwicm91dGVzIiwibWFwIiwicGFnZSIsImkiLCJwYXRoIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7OztBQUFlLFNBQVNBLGNBQVQsT0FNWjtBQUFBLE1BTERDLEtBS0MsUUFMREEsS0FLQztBQUFBLE1BSkRDLFFBSUMsUUFKREEsUUFJQztBQUFBLDRCQUhEQyxTQUdDO0FBQUEsTUFIREEsU0FHQywrQkFIVyxNQUdYO0FBQUEsTUFGREMsS0FFQyxRQUZEQSxLQUVDO0FBQUEsTUFEREMsUUFDQyxRQUREQSxRQUNDO0FBQ0QsTUFBTUMsU0FBUyx1Q0FBT0wsS0FBUCxDQUFmLENBREMsQ0FDNEI7O0FBQzdCLE1BQU1NLEtBQUssR0FBRyxFQUFkLENBRkMsQ0FFZ0I7O0FBRWpCLFNBQU9ELFNBQVMsQ0FBQ0UsTUFBakIsRUFBeUI7QUFDdkI7QUFDQUQsSUFBQUEsS0FBSyxDQUFDRSxJQUFOLENBQVdILFNBQVMsQ0FBQ0ksTUFBVixDQUFpQixDQUFqQixFQUFvQlIsUUFBcEIsQ0FBWDtBQUNEOztBQUVELE1BQU1TLFVBQVUsR0FBR0osS0FBSyxDQUFDQyxNQUF6QixDQVRDLENBV0Q7O0FBQ0EsTUFBTUksU0FBUyxHQUFHTCxLQUFLLENBQUMsQ0FBRCxDQUF2QjtBQUVBLE1BQU1NLE1BQU0sb0NBRUxULEtBRkssR0FHTEMsUUFBUSxDQUFDTyxTQUFELEVBQVksQ0FBWixFQUFlRCxVQUFmLENBSEgsOENBTVBKLEtBQUssQ0FBQ08sR0FBTixDQUFVLFVBQUNDLElBQUQsRUFBT0MsQ0FBUDtBQUFBLDJDQUNSWixLQURRO0FBQ0Q7QUFDVmEsTUFBQUEsSUFBSSxZQUFLYixLQUFLLENBQUNhLElBQVgsY0FBbUJkLFNBQW5CLGNBQWdDYSxDQUFDLEdBQUcsQ0FBcEM7QUFGTyxPQUdSWCxRQUFRLENBQUNVLElBQUQsRUFBT0MsQ0FBQyxHQUFHLENBQVgsRUFBY0wsVUFBZCxDQUhBO0FBQUEsR0FBVixDQU5PLEVBQVo7QUFhQSxTQUFPRSxNQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBtYWtlUGFnZVJvdXRlcyh7XG4gIGl0ZW1zLFxuICBwYWdlU2l6ZSxcbiAgcGFnZVRva2VuID0gJ3BhZ2UnLFxuICByb3V0ZSxcbiAgZGVjb3JhdGUsXG59KSB7XG4gIGNvbnN0IGl0ZW1zQ29weSA9IFsuLi5pdGVtc10gLy8gTWFrZSBhIGNvcHkgb2YgdGhlIGl0ZW1zXG4gIGNvbnN0IHBhZ2VzID0gW10gLy8gTWFrZSBhbiBhcnJheSBmb3IgYWxsIG9mIHRoZSBkaWZmZXJlbnQgcGFnZXNcblxuICB3aGlsZSAoaXRlbXNDb3B5Lmxlbmd0aCkge1xuICAgIC8vIFNwbGljZSBvdXQgYWxsIG9mIHRoZSBpdGVtcyBpbnRvIHNlcGFyYXRlIHBhZ2VzIHVzaW5nIGEgc2V0IHBhZ2VTaXplXG4gICAgcGFnZXMucHVzaChpdGVtc0NvcHkuc3BsaWNlKDAsIHBhZ2VTaXplKSlcbiAgfVxuXG4gIGNvbnN0IHRvdGFsUGFnZXMgPSBwYWdlcy5sZW5ndGhcblxuICAvLyBNb3ZlIHRoZSBmaXJzdCBwYWdlIG91dCBvZiBwYWdpbmF0aW9uLiBUaGlzIGlzIHNvIHBhZ2Ugb25lIGRvZXNuJ3QgcmVxdWlyZSBhIHBhZ2UgbnVtYmVyLlxuICBjb25zdCBmaXJzdFBhZ2UgPSBwYWdlc1swXVxuXG4gIGNvbnN0IHJvdXRlcyA9IFtcbiAgICB7XG4gICAgICAuLi5yb3V0ZSxcbiAgICAgIC4uLmRlY29yYXRlKGZpcnN0UGFnZSwgMSwgdG90YWxQYWdlcyksIC8vIGFuZCBvbmx5IHBhc3MgdGhlIGZpcnN0IHBhZ2UgYXMgZGF0YVxuICAgIH0sXG4gICAgLy8gbWFwIG92ZXIgZWFjaCBwYWdlIHRvIGNyZWF0ZSBhbiBhcnJheSBvZiBwYWdlIHJvdXRlcywgYW5kIHNwcmVhZCBpdCFcbiAgICAuLi5wYWdlcy5tYXAoKHBhZ2UsIGkpID0+ICh7XG4gICAgICAuLi5yb3V0ZSwgLy8gcm91dGUgZGVmYXVsdHNcbiAgICAgIHBhdGg6IGAke3JvdXRlLnBhdGh9LyR7cGFnZVRva2VufS8ke2kgKyAxfWAsXG4gICAgICAuLi5kZWNvcmF0ZShwYWdlLCBpICsgMSwgdG90YWxQYWdlcyksXG4gICAgfSkpLFxuICBdXG5cbiAgcmV0dXJuIHJvdXRlc1xufVxuIl19