UNPKG

si-funciona

Version:

Funciones de utilidad para uso general. [General usage utility functions.]

44 lines (42 loc) 1.42 kB
'use strict' Object.defineProperty(exports, '__esModule', { value: true }) exports.makeRelativePath = exports.default = void 0 var _strBefore = _interopRequireDefault(require('./strBefore')) var _strAfter = _interopRequireDefault(require('./strAfter')) function _interopRequireDefault (e) { return e && e.__esModule ? e : { default: e } } /** * Compare two file paths and simplify them to a relative path. * @memberOf module:stringHelpers * @param {string} fromFile * @param {string} toFile * @return {string} */ const makeRelativePath = (fromFile, toFile) => { let relativePath = toFile let nextPart = fromFile let firstPart = (0, _strBefore.default)(nextPart, '/') let hasMatches = false while (firstPart && relativePath.startsWith(firstPart)) { relativePath = (0, _strAfter.default)(relativePath, `${firstPart}/`) nextPart = (0, _strAfter.default)(nextPart, `${firstPart}/`) firstPart = (0, _strBefore.default)(nextPart, '/') hasMatches = true } if (!hasMatches) { // No similar base paths, use the path as-is return relativePath } let relativePrefix = '' const nextParts = nextPart.split('/') if (nextParts.length < 2) { relativePrefix = './' } for (let i = 1; i < nextParts.length; ++i) { relativePrefix += '../' } return relativePrefix + relativePath } exports.makeRelativePath = makeRelativePath var _default = exports.default = makeRelativePath