@backstage/cli
Version:
CLI for developing Backstage plugins and apps
45 lines (39 loc) • 1.4 kB
JavaScript
;
var cliCommon = require('@backstage/cli-common');
var cliNode = require('@backstage/cli-node');
var fs = require('node:fs');
var path = require('node:path');
var node_url = require('node:url');
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
var fs__default = /*#__PURE__*/_interopDefaultCompat(fs);
function discoverCliModules() {
const rootDir = cliCommon.targetPaths.rootDir;
const pkgJsonPath = path.resolve(rootDir, "package.json");
let projectPkg;
try {
projectPkg = JSON.parse(fs__default.default.readFileSync(pkgJsonPath, "utf8"));
} catch {
return [];
}
const allDeps = {
...projectPkg.dependencies,
...projectPkg.devDependencies
};
const modules = [];
for (const depName of Object.keys(allDeps)) {
try {
const depPkgPath = require.resolve(`${depName}/package.json`, {
paths: [rootDir]
});
const depPkg = JSON.parse(fs__default.default.readFileSync(depPkgPath, "utf8"));
if (cliNode.PackageRoles.getRoleFromPackage(depPkg) === "cli-module") {
const resolvedPath = require.resolve(depName, { paths: [rootDir] });
modules.push(node_url.pathToFileURL(resolvedPath).href);
}
} catch {
}
}
return modules;
}
exports.discoverCliModules = discoverCliModules;
//# sourceMappingURL=discoverCliModules.cjs.js.map