mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-07 12:33:47 +08:00
R=jacktfranklin@chromium.org Bug: 1213034 Change-Id: I5da8225f60b53870a1c67d6b5d02a464c08f4eb2 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2917088 Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org> Reviewed-by: Jack Franklin <jacktfranklin@chromium.org>
68 lines
1.0 KiB
JavaScript
68 lines
1.0 KiB
JavaScript
"use strict";
|
|
|
|
var pathUtils = require("../util/path");
|
|
|
|
|
|
|
|
/*
|
|
Get a path relative to the site path.
|
|
*/
|
|
function relatePath(absolutePath, siteAbsolutePath)
|
|
{
|
|
var relativePath = [];
|
|
|
|
// At this point, it's related to the host/port
|
|
var related = true;
|
|
var parentIndex = -1;
|
|
|
|
// Find parents
|
|
siteAbsolutePath.forEach( function(siteAbsoluteDir, i)
|
|
{
|
|
if (related)
|
|
{
|
|
if (absolutePath[i] !== siteAbsoluteDir)
|
|
{
|
|
related = false;
|
|
}
|
|
else
|
|
{
|
|
parentIndex = i;
|
|
}
|
|
}
|
|
|
|
if (!related)
|
|
{
|
|
// Up one level
|
|
relativePath.push("..");
|
|
}
|
|
});
|
|
|
|
// Form path
|
|
absolutePath.forEach( function(dir, i)
|
|
{
|
|
if (i > parentIndex)
|
|
{
|
|
relativePath.push(dir);
|
|
}
|
|
});
|
|
|
|
return relativePath;
|
|
}
|
|
|
|
|
|
|
|
function relativize(urlObj, siteUrlObj, options)
|
|
{
|
|
if (urlObj.extra.relation.minimumScheme)
|
|
{
|
|
var pathArray = relatePath(urlObj.path.absolute.array, siteUrlObj.path.absolute.array);
|
|
|
|
urlObj.path.relative.array = pathArray;
|
|
urlObj.path.relative.string = pathUtils.join(pathArray);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
module.exports = relativize;
|