const baseUrl = (process.env.YAMANVM_BASE_URL || 'https://yamanvm.yamanhosting.com').replace(/\/$/, ''); const token = process.env.YAMANVM_API_TOKEN || 'yvm_live_xxxxxxxxxxxxxxxxx'; async function yamanvmRequest(method, path, payload = null, idempotencyKey = null) { const headers = { Authorization: `Bearer ${token}`, Accept: 'application/json', 'X-Request-Id': `node-${Date.now()}`, }; if (idempotencyKey) { headers['Idempotency-Key'] = idempotencyKey; } if (payload) { headers['Content-Type'] = 'application/json'; } const response = await fetch(`${baseUrl}${path}`, { method, headers, body: payload ? JSON.stringify(payload) : undefined, }); return { status: response.status, body: await response.json(), }; } console.log(await yamanvmRequest('GET', '/api/v1/ping')); console.log(await yamanvmRequest('GET', '/api/v1/servers?per_page=5')); // Example mutating call: // console.log(await yamanvmRequest( // 'POST', // '/api/v1/servers/3/power', // { action: 'restart' }, // 'srv-3-restart-1001' // ));