Initial commit
This commit is contained in:
33
node_modules/astro/dist/cli/info/infra/pnpm-package-manager.js
generated
vendored
Normal file
33
node_modules/astro/dist/cli/info/infra/pnpm-package-manager.js
generated
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
function formatPnpmVersionOutput(versionOutput) {
|
||||
return versionOutput.startsWith("link:") ? "Local" : `v${versionOutput}`;
|
||||
}
|
||||
class PnpmPackageManager {
|
||||
name = "pnpm";
|
||||
#commandExecutor;
|
||||
constructor({ commandExecutor }) {
|
||||
this.#commandExecutor = commandExecutor;
|
||||
}
|
||||
async getPackageVersion(name) {
|
||||
try {
|
||||
const { stdout } = await this.#commandExecutor.execute("pnpm", ["why", name, "--json"], {
|
||||
shell: true
|
||||
});
|
||||
const parsedOutput = JSON.parse(stdout);
|
||||
const deps = parsedOutput[0].dependencies;
|
||||
if (parsedOutput.length === 0 || !deps) {
|
||||
return void 0;
|
||||
}
|
||||
const userProvidedDependency = deps[name];
|
||||
if (userProvidedDependency) {
|
||||
return formatPnpmVersionOutput(userProvidedDependency.version);
|
||||
}
|
||||
const astroDependency = deps.astro?.dependencies[name];
|
||||
return astroDependency ? formatPnpmVersionOutput(astroDependency.version) : void 0;
|
||||
} catch {
|
||||
return void 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
export {
|
||||
PnpmPackageManager
|
||||
};
|
||||
Reference in New Issue
Block a user