123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- "use strict";
- Object.defineProperty(exports, "__esModule", { value: true });
- exports.toFilename = exports.convertPath = exports.ppath = exports.npath = exports.Filename = exports.PortablePath = void 0;
- const tslib_1 = require("tslib");
- const path_1 = tslib_1.__importDefault(require("path"));
- var PathType;
- (function (PathType) {
- PathType[PathType["File"] = 0] = "File";
- PathType[PathType["Portable"] = 1] = "Portable";
- PathType[PathType["Native"] = 2] = "Native";
- })(PathType || (PathType = {}));
- exports.PortablePath = {
- root: `/`,
- dot: `.`,
- parent: `..`,
- };
- exports.Filename = {
- nodeModules: `node_modules`,
- manifest: `package.json`,
- lockfile: `yarn.lock`,
- virtual: `__virtual__`,
- /**
- * @deprecated
- */
- pnpJs: `.pnp.js`,
- pnpCjs: `.pnp.cjs`,
- rc: `.yarnrc.yml`,
- };
- exports.npath = Object.create(path_1.default);
- exports.ppath = Object.create(path_1.default.posix);
- exports.npath.cwd = () => process.cwd();
- exports.ppath.cwd = () => toPortablePath(process.cwd());
- exports.ppath.resolve = (...segments) => {
- if (segments.length > 0 && exports.ppath.isAbsolute(segments[0])) {
- return path_1.default.posix.resolve(...segments);
- }
- else {
- return path_1.default.posix.resolve(exports.ppath.cwd(), ...segments);
- }
- };
- const contains = function (pathUtils, from, to) {
- from = pathUtils.normalize(from);
- to = pathUtils.normalize(to);
- if (from === to)
- return `.`;
- if (!from.endsWith(pathUtils.sep))
- from = (from + pathUtils.sep);
- if (to.startsWith(from)) {
- return to.slice(from.length);
- }
- else {
- return null;
- }
- };
- exports.npath.fromPortablePath = fromPortablePath;
- exports.npath.toPortablePath = toPortablePath;
- exports.npath.contains = (from, to) => contains(exports.npath, from, to);
- exports.ppath.contains = (from, to) => contains(exports.ppath, from, to);
- const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/;
- const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/;
- const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/;
- const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/;
- // Path should look like "/N:/berry/scripts/plugin-pack.js"
- // And transform to "N:\berry\scripts\plugin-pack.js"
- function fromPortablePath(p) {
- if (process.platform !== `win32`)
- return p;
- let portablePathMatch, uncPortablePathMatch;
- if ((portablePathMatch = p.match(PORTABLE_PATH_REGEXP)))
- p = portablePathMatch[1];
- else if ((uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)))
- p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`;
- else
- return p;
- return p.replace(/\//g, `\\`);
- }
- // Path should look like "N:/berry/scripts/plugin-pack.js"
- // And transform to "/N:/berry/scripts/plugin-pack.js"
- function toPortablePath(p) {
- if (process.platform !== `win32`)
- return p;
- p = p.replace(/\\/g, `/`);
- let windowsPathMatch, uncWindowsPathMatch;
- if ((windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)))
- p = `/${windowsPathMatch[1]}`;
- else if ((uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)))
- p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`;
- return p;
- }
- function convertPath(targetPathUtils, sourcePath) {
- return (targetPathUtils === exports.npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath));
- }
- exports.convertPath = convertPath;
- function toFilename(filename) {
- if (exports.npath.parse(filename).dir !== `` || exports.ppath.parse(filename).dir !== ``)
- throw new Error(`Invalid filename: "${filename}"`);
- return filename;
- }
- exports.toFilename = toFilename;
|