feature-router
Version:
Feature Based Navigation (using redux state)
51 lines (36 loc) • 1.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.PRIORITY = undefined;
exports.default = featureRoute;
var _verify = require('./util/verify');
var _verify2 = _interopRequireDefault(_verify);
var _lodash = require('lodash.isfunction');
var _lodash2 = _interopRequireDefault(_lodash);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
// NOTE: See README for complete description
var PRIORITY = exports.PRIORITY = {
HIGH: 100,
STANDARD: 50, // the default (when not specified)
LOW: 10
};
// NOTE: See README for complete description
function featureRoute() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var content = _ref.content,
_ref$priority = _ref.priority,
priority = _ref$priority === undefined ? PRIORITY.STANDARD : _ref$priority,
unknownArgs = _objectWithoutProperties(_ref, ['content', 'priority']);
// validate parameters
var check = _verify2.default.prefix('featureRoute() parameter violation: ');
check(content, 'content is required');
check((0, _lodash2.default)(content), 'content must be a function');
check(Number.isInteger(priority), 'priority (when supplied) must be an integer ... ' + priority);
var unknownArgKeys = Object.keys(unknownArgs);
check(unknownArgKeys.length === 0, 'unrecognized named parameter(s): ' + unknownArgKeys);
// embellish/return the supplied content
content.routePriority = priority;
return content;
}