diff --git a/packages/n8n-nodes-obsidian-api/nodes/ObsidianApi/ObsidianApi.node.ts b/packages/n8n-nodes-obsidian-api/nodes/ObsidianApi/ObsidianApi.node.ts index d971906..4c3fe87 100644 --- a/packages/n8n-nodes-obsidian-api/nodes/ObsidianApi/ObsidianApi.node.ts +++ b/packages/n8n-nodes-obsidian-api/nodes/ObsidianApi/ObsidianApi.node.ts @@ -264,9 +264,49 @@ export class ObsidianApi implements INodeType { // Always keep n8n output minimal/clean. // - Prefer parsed stdout (e.g. vault/vaults) // - Otherwise keep stdout as-is + // Build a stable, minimal output shape for n8n. + // We try to expose the single most useful field name per operation. + const stdout = result.stdout ?? ''; + + // Daily notes + if (resource === 'daily' && operation === 'dailyPath') { + const out: any = { path: stdout }; + if (result.stderr) out.stderr = result.stderr; + if (result.timed_out) out.timed_out = result.timed_out; + returnData.push({ json: out, pairedItem: { item: itemIndex } }); + continue; + } + if (resource === 'daily' && operation === 'dailyRead') { + const out: any = { content: stdout }; + if (result.stderr) out.stderr = result.stderr; + if (result.timed_out) out.timed_out = result.timed_out; + returnData.push({ json: out, pairedItem: { item: itemIndex } }); + continue; + } + + // Notes + if (resource === 'note' && operation === 'read') { + const out: any = { content: stdout }; + if (result.stderr) out.stderr = result.stderr; + if (result.timed_out) out.timed_out = result.timed_out; + returnData.push({ json: out, pairedItem: { item: itemIndex } }); + continue; + } + + // vault and vaults are parsed as structured JSON const parsed = (result as any).parsed_stdout; - const out: any = parsed ? parsed : { stdout: result.stdout }; - if (!parsed && result.stderr) out.stderr = result.stderr; + if (parsed) { + const out: any = parsed; + if (result.timed_out) out.timed_out = result.timed_out; + if (result.stderr) out.stderr = result.stderr; + returnData.push({ json: out, pairedItem: { item: itemIndex } }); + continue; + } + + // Everything else (writes, deletes, rename, list files, etc.): + // keep output clean/stable and only confirm success. + const out: any = { ok: true }; + if (result.stderr) out.stderr = result.stderr; if (result.timed_out) out.timed_out = result.timed_out; returnData.push({ json: out, pairedItem: { item: itemIndex } }); diff --git a/packages/n8n-nodes-obsidian-api/package-lock.json b/packages/n8n-nodes-obsidian-api/package-lock.json index d4e67ac..2ff999a 100644 --- a/packages/n8n-nodes-obsidian-api/package-lock.json +++ b/packages/n8n-nodes-obsidian-api/package-lock.json @@ -1,12 +1,12 @@ { "name": "n8n-nodes-obsidian-cli-api", - "version": "0.2.3", + "version": "0.2.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "n8n-nodes-obsidian-cli-api", - "version": "0.2.3", + "version": "0.2.4", "license": "MIT", "devDependencies": { "@types/node": "^24.0.0", diff --git a/packages/n8n-nodes-obsidian-api/package.json b/packages/n8n-nodes-obsidian-api/package.json index 7488161..fec8564 100644 --- a/packages/n8n-nodes-obsidian-api/package.json +++ b/packages/n8n-nodes-obsidian-api/package.json @@ -1,6 +1,6 @@ { "name": "n8n-nodes-obsidian-cli-api", - "version": "0.2.3", + "version": "0.2.4", "description": "n8n community nodes for the Obsidian API Docker service backed by the official Obsidian CLI.", "license": "MIT", "homepage": "https://git.yiprawr.dev/Docker/obsidian-api",