diff --git a/src/cli/generate/template.ts b/src/cli/generate/template.ts index 27edf1c..0b0f950 100644 --- a/src/cli/generate/template.ts +++ b/src/cli/generate/template.ts @@ -391,6 +391,8 @@ function optionParser(option: GeneratedOption): string | undefined { return '(value) => parseFloat(value)'; case 'boolean': return "(value) => value !== 'false'"; + case 'object': + return '(value) => JSON.parse(value)'; case 'array': // Coerce array elements to their proper types based on schema switch (option.arrayItemType) { diff --git a/src/cli/generate/tools.ts b/src/cli/generate/tools.ts index a62740b..fdea830 100644 --- a/src/cli/generate/tools.ts +++ b/src/cli/generate/tools.ts @@ -11,7 +11,7 @@ export interface GeneratedOption { cliName: string; description?: string; required: boolean; - type: 'string' | 'number' | 'boolean' | 'array' | 'unknown'; + type: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'unknown'; arrayItemType?: 'string' | 'number' | 'boolean' | 'unknown'; placeholder: string; exampleValue?: string; @@ -228,7 +228,7 @@ export function inferType(descriptor: unknown): GeneratedOption['type'] { if (value === 'integer') { return 'number'; } - if (value === 'string' || value === 'number' || value === 'boolean' || value === 'array') { + if (value === 'string' || value === 'number' || value === 'boolean' || value === 'array' || value === 'object') { return value; } return undefined;