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

96 lines 6.42 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 (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); __setModuleDefault(result, mod); return result; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.isWindowsPath = exports.maybeFileUrlToPath = exports.lowerCaseInsensitivePath = exports.getCaseSensitivePaths = exports.setCaseSensitivePaths = exports.resetCaseSensitivePaths = exports.properRelative = void 0; 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); } } exports.properRelative = properRelative; let isCaseSensitive = process.platform !== 'win32'; function resetCaseSensitivePaths() { isCaseSensitive = process.platform !== 'win32'; } exports.resetCaseSensitivePaths = resetCaseSensitivePaths; function setCaseSensitivePaths(sensitive) { isCaseSensitive = sensitive; } exports.setCaseSensitivePaths = setCaseSensitivePaths; function getCaseSensitivePaths() { return isCaseSensitive; } exports.getCaseSensitivePaths = getCaseSensitivePaths; /** * 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(); } exports.lowerCaseInsensitivePath = lowerCaseInsensitivePath; /** * 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; } exports.maybeFileUrlToPath = maybeFileUrlToPath; /** * 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi92c2NvZGUtanMtcHJvZmlsZS1jb3JlL3NyYy9wYXRoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7NERBRTREOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUU1RCwyQ0FBNkI7QUFFN0I7O0dBRUc7QUFDSCxTQUFnQixjQUFjLENBQUMsUUFBZ0IsRUFBRSxNQUFjOztJQUM3RCxtRUFBbUU7SUFDbkUsSUFBSSxNQUFBLElBQUksQ0FBQyxLQUFLLDBDQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7U0FBTSxJQUFJLE1BQUEsSUFBSSxDQUFDLEtBQUssMENBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDL0MsQ0FBQztTQUFNLENBQUM7UUFDTixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDO0FBVEQsd0NBU0M7QUFFRCxJQUFJLGVBQWUsR0FBRyxPQUFPLENBQUMsUUFBUSxLQUFLLE9BQU8sQ0FBQztBQUVuRCxTQUFnQix1QkFBdUI7SUFDckMsZUFBZSxHQUFHLE9BQU8sQ0FBQyxRQUFRLEtBQUssT0FBTyxDQUFDO0FBQ2pELENBQUM7QUFGRCwwREFFQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLFNBQWtCO0lBQ3RELGVBQWUsR0FBRyxTQUFTLENBQUM7QUFDOUIsQ0FBQztBQUZELHNEQUVDO0FBRUQsU0FBZ0IscUJBQXFCO0lBQ25DLE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUM7QUFGRCxzREFFQztBQUVEOzs7R0FHRztBQUNILFNBQWdCLHdCQUF3QixDQUFDLElBQVk7SUFDbkQsT0FBTyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0FBQ3JELENBQUM7QUFGRCw0REFFQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0Isa0JBQWtCLENBQUMsT0FBZTtJQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDMUMsT0FBTyxHQUFHLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztRQUN2RCx1RUFBdUU7UUFDdkUsc0ZBQXNGO1FBQ3RGLDRDQUE0QztRQUM1QyxPQUFPLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxJQUFBLHFCQUFhLEVBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUMzQixrR0FBa0c7UUFDbEcsT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBcEJELGdEQW9CQztBQUVEOztHQUVHO0FBQ0ksTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFBMUQsUUFBQSxhQUFhLGlCQUE2QyJ9