import type { IDataObject, INodeExecutionData } from 'n8n-workflow'; import type { ObsidianCommandResult } from '../../shared/ObsidianApiClient'; export function outputForResult(result: ObsidianCommandResult, resource: string, operation: string, itemIndex: number): INodeExecutionData { const stdout = result.stdout ?? ''; if (resource === 'daily' && operation === 'dailyPath') { return paired({ path: stdout }, result, itemIndex); } if (resource === 'daily' && operation === 'dailyRead') { return paired({ content: stdout }, result, itemIndex); } if (resource === 'note' && operation === 'read') { return paired({ content: stdout }, result, itemIndex); } if (resource === 'property' && (operation === 'propertyRead' || operation === 'properties')) { return paired({ content: stdout }, result, itemIndex); } const parsed = result.parsed_stdout; if (parsed) return paired(parsed, result, itemIndex); return paired({ ok: true }, result, itemIndex); } function paired(json: IDataObject, result: ObsidianCommandResult, itemIndex: number): INodeExecutionData { const out: IDataObject = { ...json }; if (result.stderr) out.stderr = result.stderr; if (result.timed_out) out.timed_out = result.timed_out; return { json: out, pairedItem: { item: itemIndex } }; }