UNPKG

wix-style-react

Version:
37 lines (29 loc) 1.17 kB
var trimPath = function trimPath(path, pathSeparator) { var escapedString = pathSeparator.replace(/[[\](){}?*+^$\\.|-]/g, '\\$&'); return path.replace(new RegExp('^[ ' + escapedString + ']+|[ ' + escapedString + ']+$', 'g'), ''); }; var explodePath = function explodePath(path, pathSeparator) { var trimedPath = trimPath(path, pathSeparator); if (trimedPath === '') { return []; } return trimedPath.split(pathSeparator); }; export default (function (path) { var baseUrlLink = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : ''; var baseUrlValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null; var pathSeparator = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : '/'; var pathArr = explodePath(path, pathSeparator); var options = []; var link = baseUrlLink; var idOffset = baseUrlValue ? 1 : 0; if (baseUrlValue) { options.push({ id: 0, value: baseUrlValue, link: link }); } pathArr.map(function (segment, id) { link += '/' + segment; options.push({ id: idOffset + id, value: segment, link: link }); return options; }); return options; });