UNPKG

better-trakt

Version:

A Trakt.tv client with native Typescript support and quality of life features

64 lines 2.98 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.fetch = void 0; const axios_1 = require("axios"); const buildUrl_1 = require("./buildUrl"); const error_1 = require("./error"); /** * Custom fetch func for calling trakt api * @param client axios instance * @param url trakt api uri * @param accessToken access token for oauth related actions * @returns Specified type or undefined * @internal */ function fetch(client, url, options) { return __awaiter(this, void 0, void 0, function* () { try { const response = yield client.get((0, buildUrl_1.buildUrl)(url, options), { headers: options !== undefined && options.accessToken !== undefined ? { Authorization: `Bearer ${options.accessToken}` } : undefined, // parseJson: (text: string) => Bourne.parse(text), }); const res = { data: response.data, headers: response.headers, }; if (response.headers['X-Pagination-Page'] !== undefined && response.headers['X-Pagination-Limit'] !== undefined && response.headers['X-Pagination-Page-Count'] !== undefined && response.headers['X-Pagination-Item-Count'] !== undefined) { res.pagination = { page: parseInt(response.headers['X-Pagination-Page']), limit: parseInt(response.headers['X-Pagination-Limit']), pageCount: parseInt(response.headers['X-Pagination-Page-Count']), itemCount: parseInt(response.headers['X-Pagination-Item-Count']), }; } return res; } catch (e) { if (e instanceof axios_1.AxiosError && e.response !== undefined) { // throw new TraktHttpError(e.response.status, e.response.data, e.response.headers); return { error: new error_1.TraktHttpError(e.response.status, e.response.data, e.response.headers), headers: e.response.headers, }; } // console.error(e); throw e; } }); } exports.fetch = fetch; //# sourceMappingURL=fetch.js.map