UNPKG

@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
"use strict"; /*--------------------------------------------------------- * 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=