refactor(cli): dedupe configure section parsing
This commit is contained in:
@@ -293,19 +293,18 @@ export function registerConfigCli(program: Command) {
|
||||
[] as string[],
|
||||
)
|
||||
.action(async (opts) => {
|
||||
const { CONFIGURE_WIZARD_SECTIONS, configureCommand, configureCommandWithSections } =
|
||||
await import("../commands/configure.js");
|
||||
const sections: string[] = Array.isArray(opts.section)
|
||||
? opts.section
|
||||
.map((value: unknown) => (typeof value === "string" ? value.trim() : ""))
|
||||
.filter(Boolean)
|
||||
: [];
|
||||
const {
|
||||
CONFIGURE_WIZARD_SECTIONS,
|
||||
configureCommand,
|
||||
configureCommandWithSections,
|
||||
parseConfigureWizardSections,
|
||||
} = await import("../commands/configure.js");
|
||||
const { sections, invalid } = parseConfigureWizardSections(opts.section);
|
||||
if (sections.length === 0) {
|
||||
await configureCommand(defaultRuntime);
|
||||
return;
|
||||
}
|
||||
|
||||
const invalid = sections.filter((s) => !CONFIGURE_WIZARD_SECTIONS.includes(s as never));
|
||||
if (invalid.length > 0) {
|
||||
defaultRuntime.error(
|
||||
`Invalid --section: ${invalid.join(", ")}. Expected one of: ${CONFIGURE_WIZARD_SECTIONS.join(", ")}.`,
|
||||
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
CONFIGURE_WIZARD_SECTIONS,
|
||||
configureCommand,
|
||||
configureCommandWithSections,
|
||||
parseConfigureWizardSections,
|
||||
} from "../../commands/configure.js";
|
||||
import { defaultRuntime } from "../../runtime.js";
|
||||
import { formatDocsLink } from "../../terminal/links.js";
|
||||
@@ -26,17 +27,12 @@ export function registerConfigureCommand(program: Command) {
|
||||
)
|
||||
.action(async (opts) => {
|
||||
await runCommandWithRuntime(defaultRuntime, async () => {
|
||||
const sections: string[] = Array.isArray(opts.section)
|
||||
? opts.section
|
||||
.map((value: unknown) => (typeof value === "string" ? value.trim() : ""))
|
||||
.filter(Boolean)
|
||||
: [];
|
||||
const { sections, invalid } = parseConfigureWizardSections(opts.section);
|
||||
if (sections.length === 0) {
|
||||
await configureCommand(defaultRuntime);
|
||||
return;
|
||||
}
|
||||
|
||||
const invalid = sections.filter((s) => !CONFIGURE_WIZARD_SECTIONS.includes(s as never));
|
||||
if (invalid.length > 0) {
|
||||
defaultRuntime.error(
|
||||
`Invalid --section: ${invalid.join(", ")}. Expected one of: ${CONFIGURE_WIZARD_SECTIONS.join(", ")}.`,
|
||||
|
||||
@@ -20,6 +20,24 @@ export const CONFIGURE_WIZARD_SECTIONS = [
|
||||
|
||||
export type WizardSection = (typeof CONFIGURE_WIZARD_SECTIONS)[number];
|
||||
|
||||
export function parseConfigureWizardSections(raw: unknown): {
|
||||
sections: WizardSection[];
|
||||
invalid: string[];
|
||||
} {
|
||||
const sectionsRaw: string[] = Array.isArray(raw)
|
||||
? raw.map((value: unknown) => (typeof value === "string" ? value.trim() : "")).filter(Boolean)
|
||||
: [];
|
||||
if (sectionsRaw.length === 0) {
|
||||
return { sections: [], invalid: [] };
|
||||
}
|
||||
|
||||
const invalid = sectionsRaw.filter((s) => !CONFIGURE_WIZARD_SECTIONS.includes(s as never));
|
||||
const sections = sectionsRaw.filter((s): s is WizardSection =>
|
||||
CONFIGURE_WIZARD_SECTIONS.includes(s as never),
|
||||
);
|
||||
return { sections, invalid };
|
||||
}
|
||||
|
||||
export type ChannelsWizardMode = "configure" | "remove";
|
||||
|
||||
export type ConfigureWizardParams = {
|
||||
|
||||
@@ -1,4 +1,8 @@
|
||||
export { configureCommand, configureCommandWithSections } from "./configure.commands.js";
|
||||
export { buildGatewayAuthConfig } from "./configure.gateway-auth.js";
|
||||
export { CONFIGURE_WIZARD_SECTIONS, type WizardSection } from "./configure.shared.js";
|
||||
export {
|
||||
CONFIGURE_WIZARD_SECTIONS,
|
||||
parseConfigureWizardSections,
|
||||
type WizardSection,
|
||||
} from "./configure.shared.js";
|
||||
export { runConfigureWizard } from "./configure.wizard.js";
|
||||
|
||||
Reference in New Issue
Block a user