simple-task-master
Version:
A simple command-line task management tool
59 lines • 2.15 kB
JavaScript
;
/**
* Show task command
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.showCommand = void 0;
exports.showTask = showTask;
const commander_1 = require("commander");
const task_manager_1 = require("../lib/task-manager");
const output_1 = require("../lib/output");
const errors_1 = require("../lib/errors");
/**
* Show a specific task
*/
async function showTask(idStr, options) {
try {
const taskManager = await task_manager_1.TaskManager.create();
// Parse task ID
const id = parseInt(idStr, 10);
if (isNaN(id) || id <= 0) {
throw new errors_1.ValidationError(`Invalid task ID: ${idStr}`);
}
// Get the task
const task = await taskManager.get(id);
// Determine output format
let format = 'yaml'; // default for single task
if (options.format) {
const validFormats = ['yaml', 'markdown', 'json', 'ndjson', 'table', 'csv'];
if (!validFormats.includes(options.format)) {
throw new errors_1.ValidationError(`Invalid format: ${options.format}. Valid formats: ${validFormats.join(', ')}`);
}
format = options.format;
}
// Format and output
const output = (0, output_1.formatTask)(task, format);
(0, output_1.printOutput)(output);
}
catch (error) {
if (error instanceof errors_1.ValidationError ||
error instanceof errors_1.FileSystemError ||
error instanceof errors_1.ConfigurationError ||
error instanceof errors_1.NotFoundError) {
(0, output_1.printError)(error.message);
process.exit(error instanceof errors_1.NotFoundError ? 3 : 1);
}
throw error;
}
}
/**
* Create the show command
*/
exports.showCommand = new commander_1.Command('show')
.description('Show a specific task')
.argument('<id>', 'Task ID')
.option('-f, --format <format>', 'Output format (yaml, markdown, json, ndjson, table, csv)', 'yaml')
.action(async (id, options) => {
await showTask(id, options);
});
//# sourceMappingURL=show.js.map