UNPKG

feature-router

Version:

Feature Based Navigation (using redux state)

51 lines (36 loc) 1.75 kB
'use strict'; 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; }