UNPKG

fly-machines-sdk

Version:

API that provides ability to manage applications on Fly.io

56 lines (55 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Requests = void 0; const core_1 = require("@urql/core"); class Requests { constructor(apiKey) { this.apiKey = apiKey; this.FLY_API_HOST = 'https://api.fly.io/graphql'; this.FLY_PLAIN_API_HOST = 'https://api.machines.dev'; this.client = new core_1.Client({ url: this.FLY_API_HOST, exchanges: [core_1.cacheExchange, core_1.fetchExchange], fetchOptions: () => { return { headers: { 'Authorization': `Bearer ${this.apiKey}`, }, }; }, }); } async query(body, variables) { const result = await this.client.query(body, variables).toPromise(); return result.data; } async plainQuery(path, body, returnAsText) { const result = await fetch(`${this.FLY_PLAIN_API_HOST}${path}`, { headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json', }, body: JSON.stringify(body), method: 'POST', }); return { status: result.status, result: returnAsText ? await result.text() : await result.json(), }; } async plainDeleteQuery(path, body, returnAsText) { const result = await fetch(`${this.FLY_PLAIN_API_HOST}${path}`, { headers: { 'Authorization': `Bearer ${this.apiKey}`, 'Content-Type': 'application/json', }, body: JSON.stringify(body), method: 'DELETE', }); return { status: result.status, result: returnAsText ? await result.text() : await result.json(), }; } } exports.Requests = Requests;