UNPKG

askeroo

Version:

A modern CLI prompt library with flow control, history navigation, and conditional prompts

64 lines 2.5 kB
import { ask } from "../src/index.js"; async function onSubmitSimpleTest() { console.log("=== onSubmit Callback Simple Test ===\n"); console.log("This example demonstrates onSubmit callbacks with simple side effects.\n"); let callbackCount = 0; const callbackResults = []; const result = await ask(async ({ text, radio, multi, confirm }) => { // Text input with onSubmit callback const name = await text({ label: "What's your name?", onSubmit: (value) => { callbackCount++; callbackResults.push(`Text: ${value}`); }, }); // Radio input with onSubmit callback const color = await radio({ label: "What's your favorite color?", options: [ { value: "red", label: "Red" }, { value: "blue", label: "Blue" }, { value: "green", label: "Green" }, ], onSubmit: (value) => { callbackCount++; callbackResults.push(`Radio: ${value}`); }, }); // Multi-select with onSubmit callback const hobbies = await multi({ label: "What are your hobbies?", options: ["Reading", "Gaming", "Cooking", "Sports", "Music"], onSubmit: (values) => { callbackCount++; callbackResults.push(`Multi: [${values.join(", ")}]`); }, }); // Confirm with onSubmit callback const likesPizza = await confirm({ label: "Do you like pizza?", onSubmit: (value) => { callbackCount++; callbackResults.push(`Confirm: ${value}`); }, }); return { name, color, hobbies, likesPizza }; }); console.log("\n=== Final Result ==="); console.log(JSON.stringify(result, null, 2)); console.log(`\n=== onSubmit Callback Results ===`); console.log(`Total callbacks executed: ${callbackCount}`); console.log(`Callback results:`); callbackResults.forEach((result, index) => { console.log(` ${index + 1}. ${result}`); }); if (callbackCount === 4) { console.log("\n✅ All onSubmit callbacks were executed successfully!"); } else { console.log(`\n❌ Expected 4 callbacks, but only ${callbackCount} were executed.`); } } onSubmitSimpleTest().catch(console.error); //# sourceMappingURL=onsubmit-simple-test.js.map