@backstage/cli
Version:
CLI for developing Backstage plugins and apps
84 lines (78 loc) • 2.42 kB
JavaScript
var minimatch = require('minimatch');
var getPackages = require('@manypkg/get-packages');
var index = require('./index-ce56dce5.cjs.js');
var yarn = require('./yarn-6cd89e16.cjs.js');
var run = require('./run-a0658306.cjs.js');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var minimatch__default = /*#__PURE__*/_interopDefaultLegacy(minimatch);
const DEP_TYPES = [
"dependencies",
"devDependencies",
"peerDependencies",
"optionalDependencies"
];
async function fetchPackageInfo(name) {
const yarnVersion = await yarn.detectYarnVersion();
const cmd = yarnVersion === "classic" ? ["info"] : ["npm", "info"];
try {
const { stdout: output } = await run.execFile(
"yarn",
[...cmd, "--json", name],
{ shell: true }
);
if (!output) {
throw new index.NotFoundError(
`No package information found for package ${name}`
);
}
if (yarnVersion === "berry") {
return JSON.parse(output);
}
const info = JSON.parse(output);
if (info.type !== "inspect") {
throw new Error(`Received unknown yarn info for ${name}, ${output}`);
}
return info.data;
} catch (error) {
if (yarnVersion === "classic") {
throw error;
}
if (error == null ? void 0 : error.stdout.includes("Response Code: 404")) {
throw new index.NotFoundError(
`No package information found for package ${name}`
);
}
throw error;
}
}
async function mapDependencies(targetDir, pattern) {
var _a;
const { packages, root } = await getPackages.getPackages(targetDir);
packages.push(root);
const dependencyMap = /* @__PURE__ */ new Map();
for (const pkg of packages) {
const deps = DEP_TYPES.flatMap(
(t) => {
var _a2;
return Object.entries((_a2 = pkg.packageJson[t]) != null ? _a2 : {});
}
);
for (const [name, range] of deps) {
if (minimatch__default["default"](name, pattern)) {
dependencyMap.set(
name,
((_a = dependencyMap.get(name)) != null ? _a : []).concat({
range,
name: pkg.packageJson.name,
location: pkg.dir
})
);
}
}
}
return dependencyMap;
}
exports.fetchPackageInfo = fetchPackageInfo;
exports.mapDependencies = mapDependencies;
//# sourceMappingURL=packages-30cb9ed9.cjs.js.map
;