twitter-openapi-typescript 0.0.10 → 0.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/dist/src/api.d.ts +2 -0
  2. package/dist/src/api.d.ts.map +1 -1
  3. package/dist/src/api.js +5 -1
  4. package/dist/src/api.js.map +1 -1
  5. package/dist/src/apis/defaultApi.d.ts.map +1 -1
  6. package/dist/src/apis/defaultApi.js +9 -13
  7. package/dist/src/apis/defaultApi.js.map +1 -1
  8. package/dist/src/apis/index.d.ts +1 -0
  9. package/dist/src/apis/index.d.ts.map +1 -1
  10. package/dist/src/apis/index.js +3 -1
  11. package/dist/src/apis/index.js.map +1 -1
  12. package/dist/src/apis/postApi.d.ts.map +1 -1
  13. package/dist/src/apis/postApi.js +54 -48
  14. package/dist/src/apis/postApi.js.map +1 -1
  15. package/dist/src/apis/tweetApi.d.ts +13 -12
  16. package/dist/src/apis/tweetApi.d.ts.map +1 -1
  17. package/dist/src/apis/tweetApi.js +20 -21
  18. package/dist/src/apis/tweetApi.js.map +1 -1
  19. package/dist/src/apis/userApi.d.ts +5 -12
  20. package/dist/src/apis/userApi.d.ts.map +1 -1
  21. package/dist/src/apis/userApi.js +14 -58
  22. package/dist/src/apis/userApi.js.map +1 -1
  23. package/dist/src/apis/userListApi.d.ts +8 -7
  24. package/dist/src/apis/userListApi.d.ts.map +1 -1
  25. package/dist/src/apis/userListApi.js +23 -24
  26. package/dist/src/apis/userListApi.js.map +1 -1
  27. package/dist/src/apis/usersApi.d.ts +18 -0
  28. package/dist/src/apis/usersApi.d.ts.map +1 -0
  29. package/dist/src/apis/usersApi.js +101 -0
  30. package/dist/src/apis/usersApi.js.map +1 -0
  31. package/dist/src/models/header.d.ts +5 -5
  32. package/dist/src/models/header.d.ts.map +1 -1
  33. package/dist/src/models/index.d.ts +0 -3
  34. package/dist/src/models/index.d.ts.map +1 -1
  35. package/dist/src/models/index.js +0 -3
  36. package/dist/src/models/index.js.map +1 -1
  37. package/dist/src/models/timeline.d.ts +18 -1
  38. package/dist/src/models/timeline.d.ts.map +1 -1
  39. package/dist/src/models/utils.d.ts +3 -10
  40. package/dist/src/models/utils.d.ts.map +1 -1
  41. package/dist/src/utils/api.d.ts +9 -2
  42. package/dist/src/utils/api.d.ts.map +1 -1
  43. package/dist/src/utils/api.js +80 -18
  44. package/dist/src/utils/api.js.map +1 -1
  45. package/package.json +3 -3
  46. package/src/api.ts +6 -1
  47. package/src/apis/defaultApi.ts +5 -13
  48. package/src/apis/index.ts +1 -0
  49. package/src/apis/postApi.ts +9 -7
  50. package/src/apis/tweetApi.ts +36 -33
  51. package/src/apis/userApi.ts +15 -56
  52. package/src/apis/userListApi.ts +44 -31
  53. package/src/apis/usersApi.ts +48 -0
  54. package/src/models/header.ts +5 -5
  55. package/src/models/index.ts +0 -3
  56. package/src/models/timeline.ts +21 -1
  57. package/src/models/utils.ts +3 -11
  58. package/src/utils/api.ts +66 -20
  59. package/test/api/tweetApi.test.ts +10 -10
  60. package/test/api/userApi.test.ts +10 -5
  61. package/test/api/userListApi.test.ts +5 -5
  62. package/test/api/usersApi.test.ts +12 -0
  63. package/test/util.ts +19 -8
  64. package/dist/src/models/tweet.d.ts +0 -18
  65. package/dist/src/models/tweet.d.ts.map +0 -1
  66. package/dist/src/models/tweet.js +0 -3
  67. package/dist/src/models/tweet.js.map +0 -1
  68. package/dist/src/models/user.d.ts +0 -16
  69. package/dist/src/models/user.d.ts.map +0 -1
  70. package/dist/src/models/user.js +0 -3
  71. package/dist/src/models/user.js.map +0 -1
  72. package/dist/src/models/user_list.d.ts +0 -13
  73. package/dist/src/models/user_list.d.ts.map +0 -1
  74. package/dist/src/models/user_list.js +0 -3
  75. package/dist/src/models/user_list.js.map +0 -1
  76. package/src/models/tweet.ts +0 -19
  77. package/src/models/user.ts +0 -17
  78. package/src/models/user_list.ts +0 -14
@@ -1,11 +1,52 @@
1
1
  "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
2
13
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildHeader = exports.buildCursor = exports.entriesCursor = exports.buildUserResponse = exports.userEntriesConverter = exports.tweetResultsConverter = exports.buildTweetApiUtils = exports.tweetEntriesConverter = exports.instructionToEntry = void 0;
14
+ exports.buildHeader = exports.buildCursor = exports.entriesCursor = exports.userResultConverter = exports.userEntriesConverter = exports.userOrNullConverter = exports.tweetResultsConverter = exports.buildTweetApiUtils = exports.tweetEntriesConverter = exports.instructionToEntry = exports.errorCheck = exports.getKwargs = void 0;
4
15
  var i = require("twitter-openapi-typescript-generated");
16
+ var getKwargs = function (flag, additional) {
17
+ var kwargs = { pathQueryId: flag.queryId };
18
+ if (flag.variables != null) {
19
+ kwargs.variables = JSON.stringify(__assign(__assign({}, flag.variables), additional));
20
+ }
21
+ if (flag.features != null) {
22
+ kwargs.features = JSON.stringify(flag.features);
23
+ }
24
+ if (flag.fieldToggles != null) {
25
+ kwargs.fieldToggles = JSON.stringify(flag.fieldToggles);
26
+ }
27
+ return kwargs;
28
+ };
29
+ exports.getKwargs = getKwargs;
30
+ var errorCheck = function (data) {
31
+ var res = data;
32
+ if (res.data != undefined) {
33
+ return res;
34
+ }
35
+ else if (res.error != undefined) {
36
+ throw Error(res.errors[0].message);
37
+ }
38
+ };
39
+ exports.errorCheck = errorCheck;
5
40
  var instructionToEntry = function (item) {
6
- return item
7
- .map(function (e) { return (e.type == i.InstructionType.TimelineAddEntries ? e : null); })
8
- .find(function (e) { return e; }).entries;
41
+ return item.flatMap(function (e) {
42
+ if (e.type == i.InstructionType.TimelineAddEntries) {
43
+ return e.entries;
44
+ }
45
+ else if (e.type == i.InstructionType.TimelineReplaceEntry) {
46
+ return [e.entry];
47
+ }
48
+ return [];
49
+ });
9
50
  };
10
51
  exports.instructionToEntry = instructionToEntry;
11
52
  var tweetEntriesConverter = function (item) {
@@ -45,14 +86,19 @@ var buildTweetApiUtils = function (args) {
45
86
  var tweet = (0, exports.tweetResultsConverter)(args.result);
46
87
  if (tweet == null)
47
88
  return undefined;
89
+ var user = (0, exports.userOrNullConverter)(tweet.core.userResults.result);
90
+ if (user == null)
91
+ return undefined;
48
92
  var quoted = tweet.quotedStatusResult;
49
93
  var retweeted = tweet.legacy.retweetedStatusResult;
94
+ var reply = (_b = (_a = args.reply) === null || _a === void 0 ? void 0 : _a.map(function (e) { return (0, exports.buildTweetApiUtils)({ result: e.tweetResults, promotedMetadata: e.promotedMetadata }); }).filter(function (e) { return e != null; })) !== null && _b !== void 0 ? _b : [];
50
95
  return {
51
96
  raw: args.result,
52
97
  promotedMetadata: args.promotedMetadata,
53
98
  tweet: tweet,
54
- user: tweet.core.userResults.result,
55
- reply: (_b = (_a = args.reply) === null || _a === void 0 ? void 0 : _a.map(function (e) { return (0, exports.buildTweetApiUtils)({ result: e.tweetResults, promotedMetadata: e.promotedMetadata }); }).filter(function (e) { return e != null; })) !== null && _b !== void 0 ? _b : [],
99
+ user: user,
100
+ replies: reply,
101
+ retweeted: retweeted == undefined ? undefined : (0, exports.buildTweetApiUtils)({ result: retweeted }),
56
102
  quoted: quoted == undefined ? undefined : (0, exports.buildTweetApiUtils)({ result: quoted }),
57
103
  };
58
104
  };
@@ -69,24 +115,39 @@ var tweetResultsConverter = function (tweetResults) {
69
115
  throw Error();
70
116
  };
71
117
  exports.tweetResultsConverter = tweetResultsConverter;
118
+ var userOrNullConverter = function (userResults) {
119
+ if (userResults.typename == i.TypeName.User) {
120
+ return userResults;
121
+ }
122
+ };
123
+ exports.userOrNullConverter = userOrNullConverter;
72
124
  var userEntriesConverter = function (item) {
73
125
  return item
74
126
  .map(function (e) {
75
127
  if (e.content.typename == i.TypeName.TimelineTimelineItem) {
76
128
  var item_3 = e.content.itemContent;
77
- return item_3.itemType == i.ContentItemType.TimelineUser ? item_3 : null;
129
+ if (item_3.itemType == i.ContentItemType.TimelineUser) {
130
+ return item_3.userResults;
131
+ }
78
132
  }
79
133
  })
80
134
  .filter(function (e) { return e != null; });
81
135
  };
82
136
  exports.userEntriesConverter = userEntriesConverter;
83
- var buildUserResponse = function (user) {
84
- return {
85
- raw: user,
86
- user: user.userResults.result,
87
- };
137
+ var userResultConverter = function (user) {
138
+ return user
139
+ .map(function (e) {
140
+ var user = (0, exports.userOrNullConverter)(e.result);
141
+ if (user == null)
142
+ return null;
143
+ return {
144
+ raw: e,
145
+ user: user,
146
+ };
147
+ })
148
+ .filter(function (e) { return e != null; });
88
149
  };
89
- exports.buildUserResponse = buildUserResponse;
150
+ exports.userResultConverter = userResultConverter;
90
151
  var entriesCursor = function (item) {
91
152
  var cursorList = item
92
153
  .map(function (e) {
@@ -106,20 +167,21 @@ var entriesCursor = function (item) {
106
167
  exports.entriesCursor = entriesCursor;
107
168
  var buildCursor = function (cursorList) {
108
169
  return {
109
- top: cursorList.find(function (e) { return e.cursorType == i.TimelineTimelineCursorCursorTypeEnum.Top; }),
110
- bottom: cursorList.find(function (e) { return e.cursorType == i.TimelineTimelineCursorCursorTypeEnum.Bottom; }),
170
+ top: cursorList.find(function (e) { return e.cursorType == i.CursorType.Top; }),
171
+ bottom: cursorList.find(function (e) { return e.cursorType == i.CursorType.Bottom; }),
111
172
  };
112
173
  };
113
174
  exports.buildCursor = buildCursor;
114
175
  var buildHeader = function (headers) {
176
+ var _a, _b, _c;
115
177
  return {
116
178
  raw: headers,
117
179
  connectionHash: headers.get('x-connection-hash'),
118
180
  contentTypeOptions: headers.get('x-content-type-options'),
119
181
  frameOptions: headers.get('x-frame-options'),
120
- rateLimitLimit: Number(headers.get('x-rate-limit-limit')),
121
- rateLimitRemaining: Number(headers.get('x-rate-limit-remaining')),
122
- rateLimitReset: Number(headers.get('x-rate-limit-reset')),
182
+ rateLimitLimit: Number((_a = headers.get('x-rate-limit-limit')) !== null && _a !== void 0 ? _a : 0),
183
+ rateLimitRemaining: Number((_b = headers.get('x-rate-limit-remaining')) !== null && _b !== void 0 ? _b : 0),
184
+ rateLimitReset: Number((_c = headers.get('x-rate-limit-reset')) !== null && _c !== void 0 ? _c : 0),
123
185
  responseTime: Number(headers.get('x-response-time')),
124
186
  tfePreserveBody: headers.get('x-tfe-preserve-body') == 'true',
125
187
  transactionId: headers.get('x-transaction-id'),
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/utils/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../../src/utils/api.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "twitter-openapi-typescript",
3
- "version": "0.0.10",
3
+ "version": "0.0.13",
4
4
  "description": "Implementation of Twitter internal API in TypeScript",
5
5
  "scripts": {
6
6
  "test": "jest",
@@ -22,10 +22,10 @@
22
22
  "main": "./dist/src/index.js",
23
23
  "typings": "./dist/src/index.d.ts",
24
24
  "dependencies": {
25
- "twitter-openapi-typescript-generated": "^0.0.8"
25
+ "twitter-openapi-typescript-generated": "^0.0.9"
26
26
  },
27
27
  "devDependencies": {
28
- "@types/jest": "^28.0.0",
28
+ "@types/jest": "^28.1.8",
29
29
  "@types/node": "^20.2.0",
30
30
  "@types/node-fetch": "^2.0.0",
31
31
  "@typescript-eslint/eslint-plugin": "^5.53.0",
package/src/api.ts CHANGED
@@ -11,6 +11,7 @@ import {
11
11
  V20GetApiUtils,
12
12
  } from '@/apis';
13
13
  import { DefaultFlag } from '@/models';
14
+ import { UsersApiUtils } from './apis/usersApi';
14
15
 
15
16
  export type TwitterOpenApiParams = {
16
17
  lang?: string;
@@ -27,7 +28,7 @@ export type TwitterOpenApiCookie = {
27
28
  };
28
29
 
29
30
  export class TwitterOpenApi {
30
- static hash = '29e05d162f600933fdbf633e992d2d0a249c9413';
31
+ static hash = '2d477a0fb84d249a30b5af535b467efc25b34923';
31
32
  static url = `https://raw.githubusercontent.com/fa0311/twitter-openapi/${this.hash}/src/config/placeholder.json`;
32
33
  static twitter = 'https://twitter.com/home';
33
34
 
@@ -167,6 +168,10 @@ export class TwitterOpenApiClient {
167
168
  return new UserApiUtils(new i.UserApi(this.config), this.flag);
168
169
  }
169
170
 
171
+ getUsersApi(): UsersApiUtils {
172
+ return new UsersApiUtils(new i.UsersApi(this.config), this.flag);
173
+ }
174
+
170
175
  getUserListApi(): UserListApiUtils {
171
176
  return new UserListApiUtils(new i.UserListApi(this.config), this.flag);
172
177
  }
@@ -1,5 +1,5 @@
1
1
  import * as i from 'twitter-openapi-typescript-generated';
2
- import { buildHeader } from '@/utils';
2
+ import { buildHeader, errorCheck, getKwargs } from '@/utils';
3
3
  import { RequestParam, DefaultFlag, TwitterApiUtilsResponse } from '@/models';
4
4
 
5
5
  export type ProfileSpotlightsQueryParam = {
@@ -18,18 +18,10 @@ export class DefaultApiUtils {
18
18
 
19
19
  async request<T1, T2>(param: RequestParam<T1, T2>): Promise<TwitterApiUtilsResponse<T1>> {
20
20
  const apiFn: typeof param.apiFn = param.apiFn.bind(this.api);
21
- const fieldTogglesFn = () => {
22
- if (this.flag[param.key]['fieldToggles'] == null) return { fieldToggles: '' };
23
- return { fieldToggles: JSON.stringify(this.flag[param.key]['fieldToggles']) };
24
- };
25
- const response = await apiFn({
26
- pathQueryId: this.flag[param.key]['queryId'],
27
- queryId: this.flag[param.key]['queryId'],
28
- variables: JSON.stringify({ ...this.flag[param.key]['variables'], ...param.param }),
29
- features: JSON.stringify(this.flag[param.key]['features']),
30
- ...fieldTogglesFn(),
31
- });
32
- const data = param.convertFn(await response.value());
21
+ const args = getKwargs(this.flag[param.key], param.param);
22
+ const response = await apiFn(args);
23
+ const checked = errorCheck(await response.value());
24
+ const data = param.convertFn(checked);
33
25
  return {
34
26
  raw: { response: response.raw },
35
27
  header: buildHeader(response.raw.headers),
package/src/apis/index.ts CHANGED
@@ -2,6 +2,7 @@ export { DefaultApiUtils } from './defaultApi';
2
2
  export { TweetApiUtils } from './tweetApi';
3
3
  export { PostApiUtils } from './postApi';
4
4
  export { UserApiUtils } from './userApi';
5
+ export { UsersApiUtils } from './usersApi';
5
6
  export { UserListApiUtils } from './userListApi';
6
7
  export { V11GetApiUtils } from './v11GetApi';
7
8
  export { V11PostApiUtils } from './v11PostApi';
@@ -1,7 +1,8 @@
1
1
  import * as i from 'twitter-openapi-typescript-generated';
2
2
  import { DefaultFlag } from '@/models';
3
- import { buildHeader } from '@/utils';
3
+ import { buildHeader, errorCheck } from '@/utils';
4
4
  import { TwitterApiUtilsResponse } from '@/models';
5
+ import { error } from 'console';
5
6
 
6
7
  type PostCreateTweetParam = {
7
8
  tweetText: string;
@@ -58,10 +59,11 @@ export class PostApiUtils {
58
59
  variables: { ...variables, ...args },
59
60
  },
60
61
  });
62
+
61
63
  return {
62
64
  raw: { response: response.raw },
63
65
  header: buildHeader(response.raw.headers),
64
- data: await response.value(),
66
+ data: errorCheck(await response.value()),
65
67
  };
66
68
  }
67
69
 
@@ -82,7 +84,7 @@ export class PostApiUtils {
82
84
  return {
83
85
  raw: { response: response.raw },
84
86
  header: buildHeader(response.raw.headers),
85
- data: await response.value(),
87
+ data: errorCheck(await response.value()),
86
88
  };
87
89
  }
88
90
 
@@ -103,7 +105,7 @@ export class PostApiUtils {
103
105
  return {
104
106
  raw: { response: response.raw },
105
107
  header: buildHeader(response.raw.headers),
106
- data: await response.value(),
108
+ data: errorCheck(await response.value()),
107
109
  };
108
110
  }
109
111
  async postDeleteRetweet(param: PostDeleteRetweetParam): Promise<TwitterApiUtilsResponse<i.DeleteRetweetResponse>> {
@@ -123,7 +125,7 @@ export class PostApiUtils {
123
125
  return {
124
126
  raw: { response: response.raw },
125
127
  header: buildHeader(response.raw.headers),
126
- data: await response.value(),
128
+ data: errorCheck(await response.value()),
127
129
  };
128
130
  }
129
131
 
@@ -146,7 +148,7 @@ export class PostApiUtils {
146
148
  return {
147
149
  raw: { response: response.raw },
148
150
  header: buildHeader(response.raw.headers),
149
- data: await response.value(),
151
+ data: errorCheck(await response.value()),
150
152
  };
151
153
  }
152
154
 
@@ -169,7 +171,7 @@ export class PostApiUtils {
169
171
  return {
170
172
  raw: { response: response.raw },
171
173
  header: buildHeader(response.raw.headers),
172
- data: await response.value(),
174
+ data: errorCheck(await response.value()),
173
175
  };
174
176
  }
175
177
  }
@@ -1,6 +1,12 @@
1
1
  import * as i from 'twitter-openapi-typescript-generated';
2
- import { DefaultFlag, TweetListApiUtilsResponse, ApiUtilsRaw, RequestParam } from '@/models';
3
- import { buildHeader, entriesCursor, instructionToEntry, tweetEntriesConverter } from '@/utils';
2
+ import {
3
+ DefaultFlag,
4
+ RequestParam,
5
+ TwitterApiUtilsResponse,
6
+ TweetApiUtilsData,
7
+ TimelineApiUtilsResponse,
8
+ } from '@/models';
9
+ import { buildHeader, entriesCursor, errorCheck, getKwargs, instructionToEntry, tweetEntriesConverter } from '@/utils';
4
10
 
5
11
  type GetTweetDetailParam = {
6
12
  focalTweetId: string;
@@ -69,6 +75,8 @@ type GetBookmarksParam = {
69
75
  extraParam?: { [key: string]: any };
70
76
  };
71
77
 
78
+ type ResponseType = TwitterApiUtilsResponse<TimelineApiUtilsResponse<TweetApiUtilsData>>;
79
+
72
80
  export class TweetApiUtils {
73
81
  api: i.TweetApi;
74
82
  flag: DefaultFlag;
@@ -78,36 +86,31 @@ export class TweetApiUtils {
78
86
  this.flag = flag;
79
87
  }
80
88
 
81
- async request<T>(param: RequestParam<i.InstructionUnion[], T>): Promise<TweetListApiUtilsResponse> {
89
+ async request<T>(param: RequestParam<i.InstructionUnion[], T>): Promise<ResponseType> {
82
90
  const apiFn: typeof param.apiFn = param.apiFn.bind(this.api);
83
- const fieldTogglesFn = () => {
84
- if (this.flag[param.key]['fieldToggles'] == null) return { fieldToggles: '' };
85
- return { fieldToggles: JSON.stringify(this.flag[param.key]['fieldToggles']) };
86
- };
87
- const response = await apiFn({
88
- pathQueryId: this.flag[param.key]['queryId'],
89
- queryId: this.flag[param.key]['queryId'],
90
- variables: JSON.stringify({ ...this.flag[param.key]['variables'], ...param.param }),
91
- features: JSON.stringify(this.flag[param.key]['features']),
92
- ...fieldTogglesFn(),
93
- });
94
- const instruction = param.convertFn(await response.value());
91
+ const args = getKwargs(this.flag[param.key], param.param);
92
+ const response = await apiFn(args);
93
+ const checked = errorCheck(await response.value());
94
+ const instruction = param.convertFn(checked);
95
95
  const entry = instructionToEntry(instruction);
96
96
  const data = tweetEntriesConverter(entry);
97
- const raw: ApiUtilsRaw = {
98
- response: response.raw,
99
- instruction: instruction,
100
- entry: entry,
101
- };
102
97
  return {
103
- raw: raw,
98
+ raw: {
99
+ response: response.raw,
100
+ },
104
101
  header: buildHeader(response.raw.headers),
105
- cursor: entriesCursor(entry),
106
- data: data,
102
+ data: {
103
+ raw: {
104
+ instruction,
105
+ entry,
106
+ },
107
+ cursor: entriesCursor(entry),
108
+ data: data,
109
+ },
107
110
  };
108
111
  }
109
112
 
110
- async getTweetDetail(param: GetTweetDetailParam): Promise<TweetListApiUtilsResponse> {
113
+ async getTweetDetail(param: GetTweetDetailParam): Promise<ResponseType> {
111
114
  const args = {
112
115
  focalTweetId: param.focalTweetId,
113
116
  ...(param.cursor == null ? {} : { cursor: param.cursor }),
@@ -123,7 +126,7 @@ export class TweetApiUtils {
123
126
  });
124
127
  return response;
125
128
  }
126
- async getSearchTimeline(param: GetSearchTimelineParam): Promise<TweetListApiUtilsResponse> {
129
+ async getSearchTimeline(param: GetSearchTimelineParam): Promise<ResponseType> {
127
130
  const args = {
128
131
  rawQuery: param.rawQuery,
129
132
  ...(param.product == null ? {} : { product: param.product }),
@@ -141,7 +144,7 @@ export class TweetApiUtils {
141
144
  return response;
142
145
  }
143
146
 
144
- async getHomeTimeline(param: GetHomeTimelineParam = {}): Promise<TweetListApiUtilsResponse> {
147
+ async getHomeTimeline(param: GetHomeTimelineParam = {}): Promise<ResponseType> {
145
148
  const args = {
146
149
  ...(param.count == null ? {} : { count: param.count }),
147
150
  ...(param.couser == null ? {} : { couser: param.couser }),
@@ -157,7 +160,7 @@ export class TweetApiUtils {
157
160
  return response;
158
161
  }
159
162
 
160
- async getHomeLatestTimeline(param: GetHomeLatestTimelineParam = {}): Promise<TweetListApiUtilsResponse> {
163
+ async getHomeLatestTimeline(param: GetHomeLatestTimelineParam = {}): Promise<ResponseType> {
161
164
  const args = {
162
165
  ...(param.count == null ? {} : { count: param.count }),
163
166
  ...(param.cursor == null ? {} : { cursor: param.cursor }),
@@ -173,7 +176,7 @@ export class TweetApiUtils {
173
176
  return response;
174
177
  }
175
178
 
176
- async getListLatestTweetsTimeline(param: GetListLatestTweetsTimelineParam): Promise<TweetListApiUtilsResponse> {
179
+ async getListLatestTweetsTimeline(param: GetListLatestTweetsTimelineParam): Promise<ResponseType> {
177
180
  const args = {
178
181
  listId: param.listId,
179
182
  ...(param.count == null ? {} : { count: param.count }),
@@ -190,7 +193,7 @@ export class TweetApiUtils {
190
193
  return response;
191
194
  }
192
195
 
193
- async getUserTweets(param: GetUserTweetsParam): Promise<TweetListApiUtilsResponse> {
196
+ async getUserTweets(param: GetUserTweetsParam): Promise<ResponseType> {
194
197
  const args = {
195
198
  userId: param.userId,
196
199
  ...(param.count == null ? {} : { count: param.count }),
@@ -207,7 +210,7 @@ export class TweetApiUtils {
207
210
  return response;
208
211
  }
209
212
 
210
- async getUserTweetsAndReplies(param: GetUserTweetsAndRepliesParam): Promise<TweetListApiUtilsResponse> {
213
+ async getUserTweetsAndReplies(param: GetUserTweetsAndRepliesParam): Promise<ResponseType> {
211
214
  const args = {
212
215
  userId: param.userId,
213
216
  ...(param.count == null ? {} : { count: param.count }),
@@ -224,7 +227,7 @@ export class TweetApiUtils {
224
227
  return response;
225
228
  }
226
229
 
227
- async getUserMedia(param: GetUserMediaParam): Promise<TweetListApiUtilsResponse> {
230
+ async getUserMedia(param: GetUserMediaParam): Promise<ResponseType> {
228
231
  const args = {
229
232
  userId: param.userId,
230
233
  ...(param.count == null ? {} : { count: param.count }),
@@ -240,7 +243,7 @@ export class TweetApiUtils {
240
243
  });
241
244
  return response;
242
245
  }
243
- async getLikes(param: GetLikesParam): Promise<TweetListApiUtilsResponse> {
246
+ async getLikes(param: GetLikesParam): Promise<ResponseType> {
244
247
  const args = {
245
248
  userId: param.userId,
246
249
  ...(param.count == null ? {} : { count: param.count }),
@@ -256,7 +259,7 @@ export class TweetApiUtils {
256
259
  });
257
260
  return response;
258
261
  }
259
- async getBookmarks(param: GetBookmarksParam = {}): Promise<TweetListApiUtilsResponse> {
262
+ async getBookmarks(param: GetBookmarksParam = {}): Promise<ResponseType> {
260
263
  const args = {
261
264
  ...(param.count == null ? {} : { count: param.count }),
262
265
  ...(param.cursor == null ? {} : { cursor: param.cursor }),
@@ -1,6 +1,6 @@
1
1
  import * as i from 'twitter-openapi-typescript-generated';
2
- import { RequestParam, DefaultFlag, UserApiUtilsResponse, UsersApiUtilsResponse } from '@/models';
3
- import { buildHeader } from '@/utils';
2
+ import { RequestParam, DefaultFlag, UserApiUtilsData, TwitterApiUtilsResponse } from '@/models';
3
+ import { buildHeader, errorCheck, getKwargs, userOrNullConverter } from '@/utils';
4
4
 
5
5
  type getUserByScreenNameParam = {
6
6
  screenName: string;
@@ -12,10 +12,7 @@ type getUserByRestIdParam = {
12
12
  extraParam?: { [key: string]: any };
13
13
  };
14
14
 
15
- type getUsersByRestIdsParam = {
16
- userIds: string[];
17
- extraParam?: { [key: string]: any };
18
- };
15
+ type ResponseType = TwitterApiUtilsResponse<UserApiUtilsData>;
19
16
 
20
17
  export class UserApiUtils {
21
18
  api: i.UserApi;
@@ -26,49 +23,25 @@ export class UserApiUtils {
26
23
  this.flag = flag;
27
24
  }
28
25
 
29
- async request<T>(param: RequestParam<i.UserResults, T>): Promise<UserApiUtilsResponse> {
26
+ async request<T>(param: RequestParam<i.UserResults, T>): Promise<ResponseType> {
30
27
  const apiFn: typeof param.apiFn = param.apiFn.bind(this.api);
31
- const fieldTogglesFn = () => {
32
- if (this.flag[param.key]['fieldToggles'] == null) return { fieldToggles: '' };
33
- return { fieldToggles: JSON.stringify(this.flag[param.key]['fieldToggles']) };
34
- };
35
- const response = await apiFn({
36
- pathQueryId: this.flag[param.key]['queryId'],
37
- queryId: this.flag[param.key]['queryId'],
38
- variables: JSON.stringify({ ...this.flag[param.key]['variables'], ...param.param }),
39
- features: JSON.stringify(this.flag[param.key]['features']),
40
- ...fieldTogglesFn(),
41
- });
42
- const user = param.convertFn(await response.value());
43
- return {
44
- raw: { response: response.raw },
45
- header: buildHeader(response.raw.headers),
46
- data: user.result,
47
- };
48
- }
28
+ const args = getKwargs(this.flag[param.key], param.param);
29
+ const response = await apiFn(args);
30
+ const checked = errorCheck(await response.value());
31
+ const result = param.convertFn(checked);
32
+ const user = userOrNullConverter(result.result);
49
33
 
50
- async requests<T>(param: RequestParam<i.UserResults[], T>): Promise<UsersApiUtilsResponse> {
51
- const apiFn: typeof param.apiFn = param.apiFn.bind(this.api);
52
- const fieldTogglesFn = () => {
53
- if (this.flag[param.key]['fieldToggles'] == null) return { fieldToggles: '' };
54
- return { fieldToggles: JSON.stringify(this.flag[param.key]['fieldToggles']) };
55
- };
56
- const response = await apiFn({
57
- pathQueryId: this.flag[param.key]['queryId'],
58
- queryId: this.flag[param.key]['queryId'],
59
- variables: JSON.stringify({ ...this.flag[param.key]['variables'], ...param.param }),
60
- features: JSON.stringify(this.flag[param.key]['features']),
61
- ...fieldTogglesFn(),
62
- });
63
- const user = param.convertFn(await response.value()).map((e) => e.result);
64
34
  return {
65
35
  raw: { response: response.raw },
66
36
  header: buildHeader(response.raw.headers),
67
- data: user,
37
+ data: {
38
+ raw: result,
39
+ user: user,
40
+ },
68
41
  };
69
42
  }
70
43
 
71
- async getUserByScreenName(param: getUserByScreenNameParam): Promise<UserApiUtilsResponse> {
44
+ async getUserByScreenName(param: getUserByScreenNameParam): Promise<ResponseType> {
72
45
  const args = {
73
46
  screen_name: param.screenName,
74
47
  ...param.extraParam,
@@ -81,7 +54,7 @@ export class UserApiUtils {
81
54
  });
82
55
  return response;
83
56
  }
84
- async getUserByRestId(param: getUserByRestIdParam): Promise<UserApiUtilsResponse> {
57
+ async getUserByRestId(param: getUserByRestIdParam): Promise<ResponseType> {
85
58
  const args = {
86
59
  userId: param.userId,
87
60
  ...param.extraParam,
@@ -94,18 +67,4 @@ export class UserApiUtils {
94
67
  });
95
68
  return response;
96
69
  }
97
-
98
- async getUsersByRestIds(param: getUsersByRestIdsParam): Promise<UsersApiUtilsResponse> {
99
- const args = {
100
- userIds: param.userIds,
101
- ...param.extraParam,
102
- };
103
- const response = this.requests({
104
- key: 'UsersByRestIds',
105
- apiFn: this.api.getUsersByRestIdsRaw,
106
- convertFn: (e) => e.data.users,
107
- param: args,
108
- });
109
- return response;
110
- }
111
70
  }