// scripts/deploy-workflow.js const fs = require("node:fs"); const path = require("node:path"); const { request } = require("./n8n-api"); async function main() { const [, , filePath, ...rest] = process.argv; if (!filePath) { console.error("使い方: node scripts/deploy-workflow.js [--id=<既存workflowId>]"); process.exit(1); } const idArg = rest.find((a) => a.startsWith("--id=")); const existingId = idArg ? idArg.slice("--id=".length) : null; const fullPath = path.resolve(filePath); const definition = JSON.parse(fs.readFileSync(fullPath, "utf8")); const body = { name: definition.name, nodes: definition.nodes, connections: definition.connections, settings: definition.settings || {}, }; const { status, body: result } = existingId ? await request("PUT", `/workflows/${existingId}`, body) : await request("POST", "/workflows", body); console.log("HTTP status:", status); console.log(JSON.stringify(result, null, 2)); if (status >= 200 && status < 300 && result.id) { console.log(`\nワークフローID: ${result.id}`); console.log("README.mdの「n8nリソースID一覧」へ記録すること。"); } } main().catch((err) => { console.error(err); process.exit(1); });