wix-style-react
Version:
wix-style-react
37 lines (29 loc) • 1.17 kB
JavaScript
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;
});