UNPKG

twitter-api-v2

Version:

Strongly typed, full-featured, light, versatile yet powerful Twitter API v1.1 and v2 client for Node.js.

76 lines (75 loc) 2.16 kB
import { CursoredV1Paginator } from './paginator.v1'; class ListListsV1Paginator extends CursoredV1Paginator { refreshInstanceFromResult(response, isNextPage) { const result = response.data; this._rateLimit = response.rateLimit; if (isNextPage) { this._realData.lists.push(...result.lists); this._realData.next_cursor = result.next_cursor; } } getPageLengthFromRequest(result) { return result.data.lists.length; } getItemArray() { return this.lists; } /** * Lists returned by paginator. */ get lists() { return this._realData.lists; } } export class ListMembershipsV1Paginator extends ListListsV1Paginator { constructor() { super(...arguments); this._endpoint = 'lists/memberships.json'; } } export class ListOwnershipsV1Paginator extends ListListsV1Paginator { constructor() { super(...arguments); this._endpoint = 'lists/ownerships.json'; } } export class ListSubscriptionsV1Paginator extends ListListsV1Paginator { constructor() { super(...arguments); this._endpoint = 'lists/subscriptions.json'; } } class ListUsersV1Paginator extends CursoredV1Paginator { refreshInstanceFromResult(response, isNextPage) { const result = response.data; this._rateLimit = response.rateLimit; if (isNextPage) { this._realData.users.push(...result.users); this._realData.next_cursor = result.next_cursor; } } getPageLengthFromRequest(result) { return result.data.users.length; } getItemArray() { return this.users; } /** * Users returned by paginator. */ get users() { return this._realData.users; } } export class ListMembersV1Paginator extends ListUsersV1Paginator { constructor() { super(...arguments); this._endpoint = 'lists/members.json'; } } export class ListSubscribersV1Paginator extends ListUsersV1Paginator { constructor() { super(...arguments); this._endpoint = 'lists/subscribers.json'; } }