x-api-sdk-ts
Version:
TypeScript Library for the X (ex-twitter) API V2
34 lines • 2.56 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.TwitterClient = void 0;
const OAuth2Auth_1 = require("./auth/OAuth2Auth");
const request_1 = require("./utils/request");
const posts_1 = require("./api/posts");
const media_1 = require("./api/media");
const users_1 = require("./api/users");
const likes_1 = require("./api/likes");
const fetch_adapter_1 = require("./adapters/fetch-adapter");
class TwitterClient {
constructor(config, options) {
this.config = config;
const { apiModules, requestClient, auth, baseUrl, httpAdapter } = options || {};
this.baseUrl = baseUrl || 'https://api.x.com';
const httpAdapterConstructor = httpAdapter ? httpAdapter[0] : fetch_adapter_1.FetchAdapter;
const httpAdapterParams = httpAdapter ? httpAdapter.slice(1) : [];
this.httpAdapter = new httpAdapterConstructor(...httpAdapterParams);
this.requestClient = requestClient ? new requestClient(this.httpAdapter) : new request_1.RequestClient(this.httpAdapter);
this.oAuth2 = (auth === null || auth === void 0 ? void 0 : auth.oAuth2) ? new auth.oAuth2(this.config.oAuth2, this.httpAdapter) : new OAuth2Auth_1.OAuth2Auth(this.config.oAuth2, this.httpAdapter);
this.posts = (apiModules === null || apiModules === void 0 ? void 0 : apiModules.posts) ? new apiModules.posts(this.baseUrl, this.oAuth1, this.oAuth2, this.requestClient) : new posts_1.Posts(this.baseUrl, this.oAuth1, this.oAuth2, this.requestClient);
this.media = (apiModules === null || apiModules === void 0 ? void 0 : apiModules.media) ? new apiModules.media(this.baseUrl, this.oAuth1, this.oAuth2, this.requestClient) : new media_1.Media(this.baseUrl, this.oAuth1, this.oAuth2, this.requestClient);
this.users = (apiModules === null || apiModules === void 0 ? void 0 : apiModules.users) ? new apiModules.users(this.baseUrl, this.oAuth1, this.oAuth2, this.requestClient) : new users_1.Users(this.baseUrl, this.oAuth1, this.oAuth2, this.requestClient);
this.likes = (apiModules === null || apiModules === void 0 ? void 0 : apiModules.likes) ? new apiModules.likes(this.baseUrl, this.oAuth1, this.oAuth2, this.requestClient) : new likes_1.Likes(this.baseUrl, this.oAuth1, this.oAuth2, this.requestClient);
}
isSuccessResponse(response) {
return this.requestClient.isSuccessResponse(response);
}
isErrorResponse(response) {
return !this.isSuccessResponse(response);
}
}
exports.TwitterClient = TwitterClient;
//# sourceMappingURL=client.js.map