Urara-Blog/node_modules/.pnpm-store/v3/files/a4/154f30b9a2dcf977da4e7af9739ba57e6d419a1c4ec2714c571eb3e920488283c7aac0fd43537e47dd89b0dd04e07bc533204a95aca6f4cb960f0ca6681874
2022-08-14 01:14:53 +08:00

32 lines
1.3 KiB
Text

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getPackageName = exports.getPackageBase = void 0;
// returns the base-level package folder based on detecting "node_modules"
// package name boundaries
const pkgNameRegEx = /^(@[^\\\/]+[\\\/])?[^\\\/]+/;
function getPackageBase(id) {
const pkgIndex = id.lastIndexOf('node_modules');
if (pkgIndex !== -1 &&
(id[pkgIndex - 1] === '/' || id[pkgIndex - 1] === '\\') &&
(id[pkgIndex + 12] === '/' || id[pkgIndex + 12] === '\\')) {
const pkgNameMatch = id.slice(pkgIndex + 13).match(pkgNameRegEx);
if (pkgNameMatch)
return id.slice(0, pkgIndex + 13 + pkgNameMatch[0].length);
}
return undefined;
}
exports.getPackageBase = getPackageBase;
function getPackageName(id) {
const pkgIndex = id.lastIndexOf('node_modules');
if (pkgIndex !== -1 &&
(id[pkgIndex - 1] === '/' || id[pkgIndex - 1] === '\\') &&
(id[pkgIndex + 12] === '/' || id[pkgIndex + 12] === '\\')) {
const pkgNameMatch = id.slice(pkgIndex + 13).match(pkgNameRegEx);
if (pkgNameMatch && pkgNameMatch.length > 0) {
return pkgNameMatch[0].replace(/\\/g, '/');
}
}
return undefined;
}
exports.getPackageName = getPackageName;
;