import fs from "node:fs/promises"; import path from "node:path"; import type { PluginInstallRecord } from "../config/types.plugins.js"; import { normalizeOptionalString } from "../shared/string-coerce.js";
export function formatPluginInstallPathIssue(params: {
issue: PluginInstallPathIssue;
pluginLabel: string;
defaultInstallCommand: string;
repoInstallCommand?: string | null;
formatCommand?: (command: string) => string;
}): string[] { const formatCommand = params.formatCommand ?? ((command: string) => command); if (params.issue.kind === "custom-path") { return [
`${params.pluginLabel} is installed from a custom path: ${params.issue.path}`,
`Main updates will not automatically replace that plugin with the repo's default ${params.pluginLabel} package.`,
`Reinstall with "${formatCommand(params.defaultInstallCommand)}" when you want to return to the standard ${params.pluginLabel} plugin.`,
...(params.repoInstallCommand
? [
`If you are intentionally running from a repo checkout, reinstall that checkout explicitly with "${formatCommand(params.repoInstallCommand)}" after updates.`,
]
: []),
];
} return [
`${params.pluginLabel} is installed from a custom path that no longer exists: ${params.issue.path}`,
`Reinstall with "${formatCommand(params.defaultInstallCommand)}".`,
...(params.repoInstallCommand
? [
`If you are running from a repo checkout, you can also use "${formatCommand(params.repoInstallCommand)}".`,
]
: []),
];
}
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.9 Sekunden
(vorverarbeitet am 2026-06-10)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.