chromancer
Version:
A powerful command-line interface for automating Chrome browser using Playwright. Perfect for web scraping, automation, testing, and browser workflows.
49 lines (48 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractFlagSchema = extractFlagSchema;
exports.extractCommandSchema = extractCommandSchema;
function extractFlagSchema(flag) {
return {
name: flag.name,
char: flag.char,
description: flag.description || '',
required: flag.required || false,
type: flag.type || 'string',
options: flag.options,
default: flag.default,
multiple: flag.multiple || false,
};
}
function extractCommandSchema(command) {
const flags = {};
const args = {};
// Extract flags
if (command.flags) {
for (const [name, flag] of Object.entries(command.flags)) {
if (name !== 'json' && flag) { // Skip oclif's built-in json flag
flags[name] = extractFlagSchema({ name, ...flag });
}
}
}
// Extract args
if (command.args) {
for (const [name, arg] of Object.entries(command.args)) {
if (arg) {
args[name] = {
name,
description: arg.description || '',
required: arg.required || false,
options: arg.options,
};
}
}
}
return {
name: command.id || command.name,
description: command.description || '',
flags,
args: Object.keys(args).length > 0 ? args : undefined,
examples: command.examples,
};
}