UNPKG

@logi.one/rest-client

Version:

This is a free, ultra-lightweight and easy to use rest client for node.js supporting JSON requests and streams with no external dependencies.

62 lines (61 loc) 2.39 kB
"use strict"; var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.request = exports.put = exports.post = exports.del = exports.get = void 0; const search_1 = require("./search"); const request_error_1 = require("./request-error"); function get(url, options) { return __awaiter(this, void 0, void 0, function* () { return request('GET', url, options); }); } exports.get = get; function del(url, options) { return __awaiter(this, void 0, void 0, function* () { return request('DELETE', url, options); }); } exports.del = del; function post(url, options) { return __awaiter(this, void 0, void 0, function* () { return request('POST', url, options); }); } exports.post = post; function put(url, options) { return __awaiter(this, void 0, void 0, function* () { return request('PUT', url, options); }); } exports.put = put; function request(method, url, options = {}) { return __awaiter(this, void 0, void 0, function* () { const headers = options.headers || {}; headers['User-Agent'] = headers['User-Agent'] || 'node'; const requestInit = { headers, method }; if (options.body) { requestInit.body = options.body; } if (options.token) { headers.Authorization = `Bearer ${options.token}`; } url = (0, search_1.appendSearchToURL)(url, options.search); const result = yield fetch(url, requestInit); if (!result.ok) { throw new request_error_1.RequestError(result.statusText, result.status, result.headers, result); } return result; }); } exports.request = request;