x-api-sdk-ts
Version:
TypeScript Library for the X (ex-twitter) API V2
64 lines (63 loc) • 2.55 kB
TypeScript
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;
}