@oaklean/profiler-core
Version:
Part of the @oaklean suite. It provides all basic functions to work with the `.oak` file format. It allows parsing the `.oak` file format as well as tools for analyzing the measurement values. It also provides all necessary capabilities required for prec
106 lines • 6.58 kB
JavaScript
;
/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------*/
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.isWindowsPath = void 0;
exports.properRelative = properRelative;
exports.resetCaseSensitivePaths = resetCaseSensitivePaths;
exports.setCaseSensitivePaths = setCaseSensitivePaths;
exports.getCaseSensitivePaths = getCaseSensitivePaths;
exports.lowerCaseInsensitivePath = lowerCaseInsensitivePath;
exports.maybeFileUrlToPath = maybeFileUrlToPath;
const path = __importStar(require("path"));
/**
* Resolves path segments properly based on whether they appear to be c:/ -style or / style.
*/
function properRelative(fromPath, toPath) {
var _a, _b;
// note: posix and win32 are not available in the browser polyfill.
if ((_a = path.posix) === null || _a === void 0 ? void 0 : _a.isAbsolute(fromPath)) {
return path.posix.relative(fromPath, toPath);
}
else if ((_b = path.win32) === null || _b === void 0 ? void 0 : _b.isAbsolute(fromPath)) {
return path.win32.relative(fromPath, toPath);
}
else {
return path.relative(fromPath, toPath);
}
}
let isCaseSensitive = process.platform !== 'win32';
function resetCaseSensitivePaths() {
isCaseSensitive = process.platform !== 'win32';
}
function setCaseSensitivePaths(sensitive) {
isCaseSensitive = sensitive;
}
function getCaseSensitivePaths() {
return isCaseSensitive;
}
/**
* Lowercases the path if the filesystem is case-insensitive. Warning: this
* should only be done for the purposes of comparing paths.
*/
function lowerCaseInsensitivePath(path) {
return isCaseSensitive ? path : path.toLowerCase();
}
/**
* Converts the file URL to an absolute path, if possible.
*/
function maybeFileUrlToPath(fileUrl) {
if (!fileUrl.startsWith('file:///')) {
return fileUrl;
}
fileUrl = fileUrl.replace('file:///', '');
fileUrl = decodeURIComponent(fileUrl);
if (fileUrl[0] !== '/' && !fileUrl.match(/^[A-Za-z]:/)) {
// If it has a : before the first /, assume it's a windows path or url.
// Ensure unix-style path starts with /, it can be removed when file:/// was stripped.
// Don't add if the url still has a protocol
fileUrl = '/' + fileUrl;
}
if ((0, exports.isWindowsPath)(fileUrl)) {
// If the path starts with a drive letter, ensure lowercase. VS Code uses a lowercase drive letter
fileUrl = fileUrl[0].toLowerCase() + fileUrl.substr(1);
}
return fileUrl;
}
/**
* Returns whether the path looks like a Windows path.
*/
const isWindowsPath = (path) => /^[A-Za-z]:/.test(path);
exports.isWindowsPath = isWindowsPath;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi92c2NvZGUtanMtcHJvZmlsZS1jb3JlL3NyYy9wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7NERBRTREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPNUQsd0NBU0M7QUFJRCwwREFFQztBQUVELHNEQUVDO0FBRUQsc0RBRUM7QUFNRCw0REFFQztBQUtELGdEQW9CQztBQTdERCwyQ0FBNEI7QUFFNUI7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsUUFBZ0IsRUFBRSxNQUFjOztJQUM5RCxtRUFBbUU7SUFDbkUsSUFBSSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQzdDLENBQUM7U0FBTSxJQUFJLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDN0MsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDN0MsQ0FBQztTQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZDLENBQUM7QUFDRixDQUFDO0FBRUQsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLFFBQVEsS0FBSyxPQUFPLENBQUE7QUFFbEQsU0FBZ0IsdUJBQXVCO0lBQ3RDLGVBQWUsR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQTtBQUMvQyxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsU0FBa0I7SUFDdkQsZUFBZSxHQUFHLFNBQVMsQ0FBQTtBQUM1QixDQUFDO0FBRUQsU0FBZ0IscUJBQXFCO0lBQ3BDLE9BQU8sZUFBZSxDQUFBO0FBQ3ZCLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxTQUFnQix3QkFBd0IsQ0FBQyxJQUFZO0lBQ3BELE9BQU8sZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQTtBQUNuRCxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxPQUFlO0lBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7UUFDckMsT0FBTyxPQUFPLENBQUE7SUFDZixDQUFDO0lBRUQsT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ3pDLE9BQU8sR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUNyQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7UUFDeEQsdUVBQXVFO1FBQ3ZFLHNGQUFzRjtRQUN0Riw0Q0FBNEM7UUFDNUMsT0FBTyxHQUFHLEdBQUcsR0FBRyxPQUFPLENBQUE7SUFDeEIsQ0FBQztJQUVELElBQUksSUFBQSxxQkFBYSxFQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDNUIsa0dBQWtHO1FBQ2xHLE9BQU8sR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQsT0FBTyxPQUFPLENBQUE7QUFDZixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQTtBQUF6RCxRQUFBLGFBQWEsaUJBQTRDIn0=