release: WRNexusJS 0.8.0
Quality / quality (ubuntu-latest) (push) Failing after 21s
Quality / quality (windows-latest) (push) Canceled after 0s

This commit is contained in:
2026-08-02 23:18:51 +05:30
parent 87507edf59
commit 586a6db8ff
625 changed files with 243608 additions and 11210 deletions
+37
View File
@@ -0,0 +1,37 @@
import { resolve } from "node:path";
import { createPluginRunner, discoverPlugins } from "@wrnexus/plugin";
import { loadAppConfig } from "@wrnexus/styles";
export async function runPluginCliCommand(
appRoot: string,
commandName: string,
args: string[],
): Promise<boolean> {
const root = resolve(appRoot);
const config = await loadAppConfig(root);
const discovered = await discoverPlugins(root, config.plugins, {
includeDevDependencies: true,
strict: true,
});
const runner = createPluginRunner(discovered, {
root,
mode: "development",
command: "cli",
metadata: new Map(),
warn: (message) => console.warn(`[wrnexus:plugin] ${message}`),
});
await runner.configure(config as Record<string, unknown>);
await runner.configResolved(config as Readonly<Record<string, unknown>>);
const command = (await runner.contributions()).cliCommands.find(
(candidate) => candidate.name === commandName,
);
if (!command) return false;
await command.run(args, {
root,
mode: "development",
command: "cli",
metadata: new Map(),
warn: (message) => console.warn(`[wrnexus:plugin] ${message}`),
});
return true;
}