UNPKG

x-api-sdk-ts

Version:

TypeScript Library for the X (ex-twitter) API V2

64 lines (63 loc) 2.55 kB
export interface IGenericError { title: string; type: string; detail?: string; status?: number; } export interface IForbiddenError extends IGenericError { reason?: 'official-client-forbidden' | 'client-not-enrolled'; registration_url?: string; } export interface IResourceViolationError extends IGenericError { resource_id: string; resource_type: 'user' | 'tweet' | 'media' | 'list' | 'space'; section: 'data' | 'includes'; } export interface IDuplicateRuleError extends IGenericError { id?: string; value?: string; } export interface IInvalidRequestError extends IGenericError { errors?: Array<{ message?: string; parameters?: Record<string, string | string[]>; }>; } export interface IForbiddenFieldAccessError extends IGenericError { field: string; resource_type: 'user' | 'tweet' | 'media' | 'list' | 'space'; section: 'data' | 'includes'; } export interface IForbiddenResourceAccessError extends IGenericError { parameter: string; resource_id: string; resource_type: 'user' | 'tweet' | 'media' | 'list' | 'space'; section: 'data' | 'includes'; value: string; } export interface IDisconnectedError extends IGenericError { disconnect_type: 'OperationalDisconnect' | 'UpstreamOperationalDisconnect' | 'ForceDisconnect' | 'UpstreamUncleanDisconnect' | 'SlowReader' | 'InternalError' | 'ClientApplicationStateDegraded' | 'InvalidRules'; } export interface IResourceNotFoundError extends IGenericError { parameter: string; resource_id: string; resource_type: 'user' | 'tweet' | 'media' | 'list' | 'space'; value: string; } export interface IResourceNotAvailableToYouError extends IGenericError { parameter: string; resource_id: string; resource_type: 'user' | 'tweet' | 'media' | 'list' | 'space'; } export interface IConnectionIssueError extends IGenericError { connection_issue?: 'TooManyConnections' | 'ProvisioningSubscription' | 'RuleConfigurationIssue' | 'RulesInvalidIssue'; } export interface IUsageCapExceededError extends IGenericError { period?: 'Daily' | 'Monthly'; scope?: 'Account' | 'Product'; } export type IXError = IGenericError | IForbiddenError | IResourceViolationError | IDuplicateRuleError | IInvalidRequestError | IForbiddenFieldAccessError | IForbiddenResourceAccessError | IDisconnectedError | IResourceNotFoundError | IResourceNotAvailableToYouError | IConnectionIssueError | IUsageCapExceededError; export interface RequestFailedError { code: string; message: string; }