@vendure/cli
Version:
A modern, headless ecommerce framework
43 lines • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.pauseForPromptDisplay = pauseForPromptDisplay;
exports.isRunningInTsNode = isRunningInTsNode;
exports.withInteractiveTimeout = withInteractiveTimeout;
const prompts_1 = require("@clack/prompts");
async function pauseForPromptDisplay() {
await new Promise(resolve => setTimeout(resolve, 100));
}
function isRunningInTsNode() {
return process[Symbol.for('ts-node.register.instance')] != null;
}
async function withInteractiveTimeout(promptFn, timeoutMs = 60000) {
return new Promise((resolve, reject) => {
const timeout = setTimeout(() => {
prompts_1.log.warning('\n⚠Interactive mode timeout after 60 seconds\n');
prompts_1.log.info('This appears to be an automated environment (AI agent/editor).');
prompts_1.log.info('Interactive prompts are not suitable for automated tools.\n');
prompts_1.log.info('Please use the non-interactive mode with specific command flags.\n');
prompts_1.log.info('Examples:');
prompts_1.log.info(' vendure add -p MyPlugin');
prompts_1.log.info(' vendure add -e MyEntity');
prompts_1.log.info(' vendure add -s MyService');
prompts_1.log.info(' vendure migrate -g my-migration');
prompts_1.log.info(' vendure migrate -r\n');
prompts_1.log.info('--- For complete usage information, run:');
prompts_1.log.info(' vendure --help');
prompts_1.log.info(' vendure add --help');
prompts_1.log.info(' vendure migrate --help\n');
process.exit(1);
}, timeoutMs);
promptFn()
.then(result => {
clearTimeout(timeout);
resolve(result);
})
.catch(error => {
clearTimeout(timeout);
reject(error);
});
});
}
//# sourceMappingURL=utils.js.map