MCPcopy Create free account
hub / github.com/Marus/cortex-debug / getPathRelative

Function getPathRelative

src/common.ts:889–922  ·  view source on GitHub ↗
(base: string, target: string)

Source from the content-addressed store, hash-verified

887
888// Both arguments are expected to be full path names
889export function getPathRelative(base: string, target: string) {
890 if (os.platform() === 'win32') {
891 base = base.replace(/\\/g, '/');
892 target = target.replace(/\\/g, '/');
893 }
894 if (!path.isAbsolute(base) || !path.isAbsolute(target)) {
895 return target;
896 }
897 const baseElts = base.split('/');
898 const targetElts = target.split('/');
899 if (!base || !target || (base.length > target.length) || (baseElts[0] !== targetElts[0])) {
900 // Roots don't even match or base is larger than the target, so no point
901 return target;
902 }
903 while (baseElts.length && targetElts.length) {
904 if (baseElts[0] !== targetElts[0]) {
905 break;
906 }
907 baseElts.shift();
908 targetElts.shift();
909 }
910 if (baseElts.length === 0) {
911 return './' + targetElts.join('/');
912 }
913 if (baseElts.length > 4) {
914 return target;
915 }
916 while (baseElts.length) {
917 targetElts.unshift('..');
918 baseElts.shift();
919 }
920 const ret = targetElts.join('/');
921 return ret;
922}

Callers 2

scopesRequestMethod · 0.90
getTreeItemMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected