From 528aaef57186466d84f7fd51b7d58c847223e4cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micka=C3=ABl=20CASSY?= <3918958+Micka33@users.noreply.github.com> Date: Tue, 8 Apr 2025 11:15:59 +0200 Subject: [PATCH 1/2] docs: Updates README.md to match v2 response type - Fixes examples to match v2 response type. - Removes useless and potentially misleading `async` from custom HTTPAdapter example. --- README.md | 38 +++++++++++++++++++++++++++----------- 1 file changed, 27 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 3a3c489..e3fb69d 100644 --- a/README.md +++ b/README.md @@ -181,6 +181,9 @@ const mediaResponse = await twitterClient.media.upload( 'image/jpeg', 'tweet_image' ); +if (!twitterClient.isSuccessResponse(mediaResponse)) { + console.error('Failed uploading media:', JSON.stringify(mediaResponse, null, 2)); +} const mediaData = mediaResponse.data; const mediaId = mediaData.data.id; ``` @@ -188,14 +191,17 @@ const mediaId = mediaData.data.id; ### Get Media Upload Status ```typescript -const media = await twitterClient.media.getUploadStatus(mediaId); -const mediaStatus = media.data.data.processing_info.state; // 'succeeded' | 'in_progress' | 'pending' | 'failed' +const mediaResponse = await twitterClient.media.getUploadStatus(mediaId); +if (!twitterClient.isSuccessResponse(mediaResponse)) { + console.error('Failed get media upload status:', JSON.stringify(mediaResponse, null, 2)); +} +const mediaStatus = mediaResponse.data.data.processing_info.state; // 'succeeded' | 'in_progress' | 'pending' | 'failed' ``` ### Add Metadata to Media ```typescript -const mediaMetadata = await twitterClient.media.addMetadata( +const mediaMetadataResponse = await twitterClient.media.addMetadata( mediaId, // media id 'A smiling dog profile picture', // alt text true, // allow download @@ -208,12 +214,16 @@ const mediaMetadata = await twitterClient.media.addMetadata( ### Create Post ```typescript -const post = await twitterClient.posts.create( +const postReponse = await twitterClient.posts.create( 'Hello World!', { media: { media_ids: [mediaId] }, } ); +if (!twitterClient.isSuccessResponse(postReponse)) { + console.error('Failed creating new post with media:', JSON.stringify(postReponse, null, 2)); +} +const post = postResponse.data; const postId = post.data.id; ``` @@ -226,9 +236,11 @@ await twitterClient.posts.delete(postId); ### Get One Post ```typescript -const post = await twitterClient.posts.get(postId, { +const postResponse = await twitterClient.posts.get(postId, { mediaFields: ['alt_text', 'type', 'url', 'media_key'], }); +if (!twitterClient.isSuccessResponse(postReponse)) return; +const post = postResponse.data; const postId = post.data.id; const postText = post.data.text; const postAuthorId = post.data.author_id; @@ -240,9 +252,11 @@ const otherpostMediaKey = post.includes?.media?.[0].media_keys?.[0]; ### Get Several Posts ```typescript -const posts = await twitterClient.posts.getMultiple([postId1, postId2, postId3], { +const postsResponse = await twitterClient.posts.getMultiple([postId1, postId2, postId3], { mediaFields: ['alt_text', 'type', 'url', 'media_key'], }); +if (!twitterClient.isSuccessResponse(postsResponse)) return; +const posts = postsResponse.data; const post1 = posts.data[0]; const post2 = posts.data[1]; const post3 = posts.data[2]; @@ -251,14 +265,18 @@ const post3 = posts.data[2]; ### Like Post ```typescript -const like = await twitterClient.likes.add(postId); +const likeResponse = await twitterClient.likes.add(postId); +if (!twitterClient.isSuccessResponse(likeResponse)) return; +const like = likeResponse.data; const liked = like.data.liked; ``` ### Get Authenticated User Info ```typescript -const user = await twitterClient.users.getMe(); +const userResponse = await twitterClient.users.getMe(); +if (!twitterClient.isSuccessResponse(userResponse)) return; +const user = userResponse.data; const userId = user.data.id; const userName = user.data.name; const userUsername = user.data.username; @@ -309,7 +327,7 @@ import { IHttpAdapter, IHttpFetchResponse } from 'x-api-sdk-ts'; export class CustomHttpAdapter implements IHttpAdapter { constructor(private paramA: string, private paramB: number) {} - public async fetch(url: string, options?: RequestInit): Promise> { + public fetch(url: string, options?: RequestInit): Promise> { return fetch(url, options); } } @@ -324,8 +342,6 @@ const twitterClient = new TwitterClient(config, { ``` - - ## Development Documentation See [Development Documentation](https://github.com/Micka33/x-api-sdk-ts/blob/main/DEVELOPMENT.md). From c1749ea960eff1a339b8c23e499ad4efec7a750f Mon Sep 17 00:00:00 2001 From: Micka33 <3918958+Micka33@users.noreply.github.com> Date: Tue, 8 Apr 2025 11:20:03 +0200 Subject: [PATCH 2/2] Bump version to 2.0.3 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 68e3e5e..a7fd1b7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "x-api-sdk-ts", - "version": "2.0.2", + "version": "2.0.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "x-api-sdk-ts", - "version": "2.0.2", + "version": "2.0.3", "license": "MIT", "devDependencies": { "@eslint/eslintrc": "^3.2.0", diff --git a/package.json b/package.json index 30bc923..cdcd61f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "x-api-sdk-ts", - "version": "2.0.2", + "version": "2.0.3", "description": "TypeScript Library for the X (ex-twitter) API V2", "main": "dist/index.js", "types": "dist/index.d.ts",