@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
JavaScript
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;
;