Files
xo-cli/src/tui/screens/action-wizard/flows/index.ts
2026-05-04 05:04:28 +00:00

22 lines
821 B
TypeScript

import type { XOTemplateAction } from "@xo-cash/types";
import { TransactionWizardFlow } from "./TransactionWizardFlow.js";
import { DataWizardFlow } from "./DataWizardFlow.js";
import type { WizardFlow } from "./WizardFlow.js";
export { WizardFlow } from "./WizardFlow.js";
export { TransactionWizardFlow } from "./TransactionWizardFlow.js";
export { DataWizardFlow } from "./DataWizardFlow.js";
/**
* Inspect a template action and return the appropriate wizard flow strategy.
*
* Actions with `data` fields and no `transaction` are data-only flows.
* Everything else uses the transaction flow.
*/
export function createWizardFlow(action: XOTemplateAction): WizardFlow {
if (action.data?.length && !action.transaction) {
return new DataWizardFlow([action.data]);
}
return new TransactionWizardFlow();
}