42 lines
1.7 KiB
TypeScript
42 lines
1.7 KiB
TypeScript
import type { AbstractConstructor } from './twitter-client-base.js';
|
|
import { TwitterClientBase } from './twitter-client-base.js';
|
|
import { type TwitterClientBookmarkMethods, withBookmarks } from './twitter-client-bookmarks.js';
|
|
import { type TwitterClientListMethods, withLists } from './twitter-client-lists.js';
|
|
import { type TwitterClientMediaMethods, withMedia } from './twitter-client-media.js';
|
|
import { type TwitterClientPostingMethods, withPosting } from './twitter-client-posting.js';
|
|
import { type TwitterClientSearchMethods, withSearch } from './twitter-client-search.js';
|
|
import { type TwitterClientTimelineMethods, withTimelines } from './twitter-client-timelines.js';
|
|
import { type TwitterClientTweetDetailMethods, withTweetDetails } from './twitter-client-tweet-detail.js';
|
|
import { type TwitterClientUserMethods, withUsers } from './twitter-client-users.js';
|
|
|
|
type TwitterClientInstance = TwitterClientBase &
|
|
TwitterClientBookmarkMethods &
|
|
TwitterClientListMethods &
|
|
TwitterClientMediaMethods &
|
|
TwitterClientPostingMethods &
|
|
TwitterClientSearchMethods &
|
|
TwitterClientTimelineMethods &
|
|
TwitterClientTweetDetailMethods &
|
|
TwitterClientUserMethods;
|
|
|
|
const MixedTwitterClient = withUsers(
|
|
withLists(withTimelines(withSearch(withTweetDetails(withPosting(withBookmarks(withMedia(TwitterClientBase))))))),
|
|
) as AbstractConstructor<TwitterClientInstance>;
|
|
|
|
export class TwitterClient extends MixedTwitterClient {}
|
|
|
|
export type {
|
|
BookmarkMutationResult,
|
|
CurrentUserResult,
|
|
FollowingResult,
|
|
GetTweetResult,
|
|
ListsResult,
|
|
SearchResult,
|
|
TweetData,
|
|
TweetResult,
|
|
TwitterClientOptions,
|
|
TwitterList,
|
|
TwitterUser,
|
|
UploadMediaResult,
|
|
} from './twitter-client-types.js';
|