UNPKG

@forestadmin/forestadmin-client

Version:

This package contains the logic to use the ForestAdmin API inside an agent.

63 lines 5.42 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const superagent_1 = __importDefault(require("superagent")); const __1 = require(".."); class ServerUtils { /** Query Forest-Admin server */ static async query(options, method, path, headers = {}, body, maxTimeAllowed = 10000) { let url; try { url = new URL(path, options.forestServerUrl).toString(); const request = superagent_1.default[method](url).timeout(maxTimeAllowed); request.set('forest-secret-key', options.envSecret); if (headers) request.set(headers); const response = await request.send(body); return response.body; } catch (error) { if (error.timeout) { throw new Error(`The request to Forest Admin server has timed out while trying to reach ${url} at ${new Date().toISOString()}. Message: ${error.message}`); } this.handleResponseError(error); } } static handleResponseError(e) { if (/certificate/i.test(e.message)) { throw new Error('Forest Admin server TLS certificate cannot be verified. ' + 'Please check that your system time is set properly. ' + `Original error: ${e.message}`); } if (e.response) { const status = e?.response?.status; const message = e?.response?.body?.errors?.[0]?.detail; // 0 == offline, 502 == bad gateway from proxy if (status === 0 || status === 502) { throw new Error('Failed to reach Forest Admin server. Are you online?'); } if (status === 403) { throw new __1.ForbiddenError(message); } if (status === 404) { throw new Error('Forest Admin server failed to find the' + ' project related to the envSecret you configured.' + ' Can you check that you copied it properly in the Forest initialization?'); } if (status === 503) { throw new Error('Forest is in maintenance for a few minutes. We are upgrading your experience in ' + 'the forest. We just need a few more minutes to get it right.'); } // If the server has something to say about the error, we display it. if (message) throw new Error(message); throw new Error('An unexpected error occurred while contacting the Forest Admin server. ' + 'Please contact support@forestadmin.com for further investigations.'); } throw e; } } exports.default = ServerUtils; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDREQUF1RDtBQUV2RCwwQkFBb0M7QUFLcEMsTUFBcUIsV0FBVztJQUM5QixnQ0FBZ0M7SUFDaEMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQ2hCLE9BQW9CLEVBQ3BCLE1BQXlDLEVBQ3pDLElBQVksRUFDWixVQUFrQyxFQUFFLEVBQ3BDLElBQXNCLEVBQ3RCLGNBQWMsR0FBRyxLQUFLO1FBRXRCLElBQUksR0FBRyxDQUFDO1FBRVIsSUFBSTtZQUNGLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3hELE1BQU0sT0FBTyxHQUFHLG9CQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBRWhFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3BELElBQUksT0FBTztnQkFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWxDLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUUxQyxPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7U0FDdEI7UUFBQyxPQUFPLEtBQUssRUFBRTtZQUNkLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRTtnQkFDakIsTUFBTSxJQUFJLEtBQUssQ0FDYiwwRUFBMEUsR0FBRyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLGNBQzFHLEtBQUssQ0FBQyxPQUNSLEVBQUUsQ0FDSCxDQUFDO2FBQ0g7WUFFRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRU8sTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQVE7UUFDekMsSUFBSSxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksS0FBSyxDQUNiLDBEQUEwRDtnQkFDeEQsc0RBQXNEO2dCQUN0RCxtQkFBbUIsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUNqQyxDQUFDO1NBQ0g7UUFFRCxJQUFLLENBQW1CLENBQUMsUUFBUSxFQUFFO1lBQ2pDLE1BQU0sTUFBTSxHQUFJLENBQW1CLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztZQUN0RCxNQUFNLE9BQU8sR0FBSSxDQUFtQixFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDO1lBRTFFLDhDQUE4QztZQUM5QyxJQUFJLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDbEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO2FBQ3pFO1lBRUQsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFO2dCQUNsQixNQUFNLElBQUksa0JBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUNuQztZQUVELElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLEtBQUssQ0FDYix3Q0FBd0M7b0JBQ3RDLG1EQUFtRDtvQkFDbkQsMEVBQTBFLENBQzdFLENBQUM7YUFDSDtZQUVELElBQUksTUFBTSxLQUFLLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxJQUFJLEtBQUssQ0FDYixrRkFBa0Y7b0JBQ2hGLDhEQUE4RCxDQUNqRSxDQUFDO2FBQ0g7WUFFRCxxRUFBcUU7WUFDckUsSUFBSSxPQUFPO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFdEMsTUFBTSxJQUFJLEtBQUssQ0FDYix5RUFBeUU7Z0JBQ3ZFLG9FQUFvRSxDQUN2RSxDQUFDO1NBQ0g7UUFFRCxNQUFNLENBQUMsQ0FBQztJQUNWLENBQUM7Q0FDRjtBQW5GRCw4QkFtRkMifQ==