import type { PluginInput, WrnexusPlugin } from "./types.ts"; export function definePlugin(plugin: WrnexusPlugin): WrnexusPlugin { if (!plugin?.name || !/^[a-z0-9@][a-z0-9@/._-]*$/i.test(plugin.name)) { throw new Error("WRN-PLUGIN-NAME: plugins require a stable package-style name."); } return plugin; } export function flattenPlugins(input: PluginInput, output: WrnexusPlugin[] = []): WrnexusPlugin[] { if (!input) return output; if (Array.isArray(input)) { for (const entry of input) flattenPlugins(entry, output); } else { output.push(definePlugin(input)); } return output; }