@book000/twitterts 0.27.0 → 0.28.0

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 (29) hide show
  1. package/dist/generate-types/custom-types-generator.d.ts +53 -0
  2. package/dist/generate-types/custom-types-generator.d.ts.map +1 -0
  3. package/dist/generate-types/custom-types-generator.js +394 -0
  4. package/dist/generate-types/custom-types-generator.js.map +1 -0
  5. package/dist/generate-types/endpoint-type-generator.d.ts +66 -0
  6. package/dist/generate-types/endpoint-type-generator.d.ts.map +1 -0
  7. package/dist/generate-types/endpoint-type-generator.js +187 -0
  8. package/dist/generate-types/endpoint-type-generator.js.map +1 -0
  9. package/dist/generate-types/types-generator.d.ts +49 -0
  10. package/dist/generate-types/types-generator.d.ts.map +1 -0
  11. package/dist/generate-types/types-generator.js +89 -0
  12. package/dist/generate-types/types-generator.js.map +1 -0
  13. package/dist/generate-types/utils.d.ts +95 -0
  14. package/dist/generate-types/utils.d.ts.map +1 -0
  15. package/dist/generate-types/utils.js +160 -0
  16. package/dist/generate-types/utils.js.map +1 -0
  17. package/dist/generate-types.js +41 -741
  18. package/dist/generate-types.js.map +1 -1
  19. package/dist/index.d.ts +5 -0
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +5 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/models/responses/custom/custom-user-legacy-object.d.ts +55 -0
  24. package/dist/models/responses/custom/custom-user-legacy-object.d.ts.map +1 -0
  25. package/dist/models/responses/custom/custom-user-legacy-object.js +4 -0
  26. package/dist/models/responses/custom/custom-user-legacy-object.js.map +1 -0
  27. package/dist/tsconfig.build.tsbuildinfo +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ import { Result } from './utils';
2
+ /**
3
+ * カスタム型定義を生成するクラス
4
+ */
5
+ export declare class CustomTypesGenerator {
6
+ private readonly results;
7
+ private readonly schemaDirectory;
8
+ private readonly typesDirectory;
9
+ /**
10
+ * @param results エンドポイントごとのレスポンス情報
11
+ * @param schemaDirectory スキーマ保存ディレクトリ
12
+ * @param typesDirectory 型定義保存ディレクトリ
13
+ */
14
+ constructor(results: Result[], schemaDirectory: string, typesDirectory: string);
15
+ /**
16
+ * 検索タイムラインツイートモデル(CustomSearchTimelineEntry)のカスタム型定義を生成する
17
+ */
18
+ private runGraphQLSearchTimeline;
19
+ /**
20
+ * ユーザーツイートモデル(CustomUserTweetEntry)のカスタム型定義を生成する
21
+ */
22
+ private runGraphQLUserTweets;
23
+ /**
24
+ * ユーザーいいねツイートモデル(CustomUserLikeTweetEntry)のカスタム型定義を生成する
25
+ */
26
+ private runGraphQLUserLikeTweets;
27
+ private runGraphQLTimelineInstruction;
28
+ /**
29
+ * レスポンスツイートオブジェクト(CustomTweetObject)のカスタム型定義を生成する
30
+ */
31
+ private runTweetObject;
32
+ /**
33
+ * レスポンスツイートレガシーオブジェクト(CustomTweetLegacyObject)のカスタム型定義を生成する
34
+ */
35
+ private runTweetLegacyObject;
36
+ /**
37
+ * レスポンスユーザーレガシーオブジェクト(CustomUserLegacyObject)のカスタム型定義を生成する
38
+ */
39
+ private runUserLegacyObject;
40
+ /**
41
+ * カスタム型定義を、スキーマを元に生成する
42
+ *
43
+ * @param schema スキーマ
44
+ * @param name 型名
45
+ * @param tsDocument 型定義の tsdoc(1 行で記述)
46
+ */
47
+ private generateTypeFromSchema;
48
+ /**
49
+ * カスタム型定義を生成する
50
+ */
51
+ generate(parallel: boolean): Promise<void>;
52
+ }
53
+ //# sourceMappingURL=custom-types-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-types-generator.d.ts","sourceRoot":"","sources":["../../src/generate-types/custom-types-generator.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAE,MAAM,EAAS,MAAM,SAAS,CAAA;AAEvC;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAQ;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAEvC;;;;OAIG;gBAED,OAAO,EAAE,MAAM,EAAE,EACjB,eAAe,EAAE,MAAM,EACvB,cAAc,EAAE,MAAM;IAOxB;;OAEG;YACW,wBAAwB;IA4CtC;;OAEG;YACW,oBAAoB;IA4ClC;;OAEG;YACW,wBAAwB;YA4CxB,6BAA6B;IAgF3C;;OAEG;YACW,cAAc;IA2K5B;;OAEG;YACW,oBAAoB;IAmHlC;;OAEG;YACW,mBAAmB;IA6CjC;;;;;;OAMG;YACW,sBAAsB;IA6BpC;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAqBjD"}
@@ -0,0 +1,394 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CustomTypesGenerator = void 0;
7
+ const node_utils_1 = require("@book000/node-utils");
8
+ const dist_1 = require("genson-js/dist");
9
+ const json_schema_to_typescript_1 = require("json-schema-to-typescript");
10
+ const node_path_1 = require("node:path");
11
+ const node_fs_1 = __importDefault(require("node:fs"));
12
+ const utils_1 = require("./utils");
13
+ /**
14
+ * カスタム型定義を生成するクラス
15
+ */
16
+ class CustomTypesGenerator {
17
+ /**
18
+ * @param results エンドポイントごとのレスポンス情報
19
+ * @param schemaDirectory スキーマ保存ディレクトリ
20
+ * @param typesDirectory 型定義保存ディレクトリ
21
+ */
22
+ constructor(results, schemaDirectory, typesDirectory) {
23
+ this.results = results;
24
+ this.schemaDirectory = schemaDirectory;
25
+ this.typesDirectory = typesDirectory;
26
+ }
27
+ /**
28
+ * 検索タイムラインツイートモデル(CustomSearchTimelineEntry)のカスタム型定義を生成する
29
+ */
30
+ async runGraphQLSearchTimeline() {
31
+ const results = this.results.filter((result) => result.type === 'graphql' &&
32
+ result.name === 'SearchTimeline' &&
33
+ result.method === 'GET' &&
34
+ result.statusCode === '200');
35
+ if (results.length === 0) {
36
+ return;
37
+ }
38
+ const paths = results.flatMap((result) => result.paths);
39
+ let schema;
40
+ for (const path of paths) {
41
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
42
+ const entries = response.data.search_by_raw_query.search_timeline.timeline.instructions
43
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
44
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
45
+ const fileSchema = (0, dist_1.createCompoundSchema)(entries);
46
+ schema = schema ? (0, dist_1.mergeSchemas)([schema, fileSchema]) : fileSchema;
47
+ }
48
+ if (!schema) {
49
+ return;
50
+ }
51
+ await this.generateTypeFromSchema(schema, 'CustomSearchTimelineEntry', '検索タイムラインツイートモデル');
52
+ }
53
+ /**
54
+ * ユーザーツイートモデル(CustomUserTweetEntry)のカスタム型定義を生成する
55
+ */
56
+ async runGraphQLUserTweets() {
57
+ const results = this.results.filter((result) => result.type === 'graphql' &&
58
+ result.name === 'UserTweets' &&
59
+ result.method === 'GET' &&
60
+ result.statusCode === '200');
61
+ if (results.length === 0) {
62
+ return;
63
+ }
64
+ const paths = results.flatMap((result) => result.paths);
65
+ let schema;
66
+ for (const path of paths) {
67
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
68
+ const entries = response.data.user.result.timeline_v2.timeline.instructions
69
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
70
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
71
+ const fileSchema = (0, dist_1.createCompoundSchema)(entries);
72
+ schema = schema ? (0, dist_1.mergeSchemas)([schema, fileSchema]) : fileSchema;
73
+ }
74
+ if (!schema) {
75
+ return;
76
+ }
77
+ await this.generateTypeFromSchema(schema, 'CustomUserTweetEntry', 'ユーザーツイートモデル');
78
+ }
79
+ /**
80
+ * ユーザーいいねツイートモデル(CustomUserLikeTweetEntry)のカスタム型定義を生成する
81
+ */
82
+ async runGraphQLUserLikeTweets() {
83
+ const results = this.results.filter((result) => result.type === 'graphql' &&
84
+ result.name === 'Likes' &&
85
+ result.method === 'GET' &&
86
+ result.statusCode === '200');
87
+ if (results.length === 0) {
88
+ return;
89
+ }
90
+ const paths = results.flatMap((result) => result.paths);
91
+ let schema;
92
+ for (const path of paths) {
93
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
94
+ const entries = response.data.user.result.timeline_v2.timeline.instructions
95
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
96
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
97
+ const fileSchema = (0, dist_1.createCompoundSchema)(entries);
98
+ schema = schema ? (0, dist_1.mergeSchemas)([schema, fileSchema]) : fileSchema;
99
+ }
100
+ if (!schema) {
101
+ return;
102
+ }
103
+ await this.generateTypeFromSchema(schema, 'CustomUserLikeTweetEntry', 'ユーザーいいねツイートエントリモデル');
104
+ }
105
+ async runGraphQLTimelineInstruction() {
106
+ const homeTimelineResults = this.results.filter((result) => result.type === 'graphql' &&
107
+ result.name === 'HomeTimeline' &&
108
+ result.method === 'GET' &&
109
+ result.statusCode === '200');
110
+ const homeLatestTimelineResults = this.results.filter((result) => result.type === 'graphql' &&
111
+ result.name === 'HomeLatestTimeline' &&
112
+ result.method === 'GET' &&
113
+ result.statusCode === '200');
114
+ if (homeTimelineResults.length === 0 &&
115
+ homeLatestTimelineResults.length === 0) {
116
+ return;
117
+ }
118
+ const hometimelinePaths = homeTimelineResults.flatMap((result) => result.paths);
119
+ const homeLatestTimelinePaths = homeLatestTimelineResults.flatMap((result) => result.paths);
120
+ let schema;
121
+ for (const path of hometimelinePaths) {
122
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
123
+ const entries = response.data.home.home_timeline_urt.instructions
124
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
125
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
126
+ const fileSchema = (0, dist_1.createCompoundSchema)(entries);
127
+ schema = schema ? (0, dist_1.mergeSchemas)([schema, fileSchema]) : fileSchema;
128
+ }
129
+ for (const path of homeLatestTimelinePaths) {
130
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
131
+ const instructions = response.data.home.home_timeline_urt.instructions
132
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
133
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
134
+ const fileSchema = (0, dist_1.createCompoundSchema)(instructions);
135
+ schema = schema ? (0, dist_1.mergeSchemas)([schema, fileSchema]) : fileSchema;
136
+ }
137
+ if (!schema) {
138
+ return;
139
+ }
140
+ await this.generateTypeFromSchema(schema, 'CustomTimelineTweetEntry', 'ホームタイムラインツイートエントリモデル');
141
+ }
142
+ // --- twitter-d 変換用オブジェクト
143
+ /**
144
+ * レスポンスツイートオブジェクト(CustomTweetObject)のカスタム型定義を生成する
145
+ */
146
+ async runTweetObject() {
147
+ // 各レスポンスからツイートオブジェクトを抽出
148
+ const schemas = [
149
+ // HomeTimeline
150
+ this.results
151
+ .filter((result) => result.type === 'graphql' &&
152
+ result.name === 'HomeTimeline' &&
153
+ result.method === 'GET' &&
154
+ result.statusCode === '200')
155
+ .flatMap((result) => result.paths)
156
+ .flatMap((path) => {
157
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
158
+ return response.data.home.home_timeline_urt.instructions
159
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
160
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
161
+ })
162
+ .map((entry) => {
163
+ return entry.content.itemContent
164
+ .tweet_results.result;
165
+ })
166
+ .filter((entry) => !!entry)
167
+ .map((entry) => (0, dist_1.createSchema)(entry)),
168
+ // HomeLatestTimeline
169
+ this.results
170
+ .filter((result) => result.type === 'graphql' &&
171
+ result.name === 'HomeLatestTimeline' &&
172
+ result.method === 'GET' &&
173
+ result.statusCode === '200')
174
+ .flatMap((result) => result.paths)
175
+ .flatMap((path) => {
176
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
177
+ return response.data.home.home_timeline_urt.instructions
178
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
179
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
180
+ })
181
+ .map((entry) => {
182
+ return entry.content.itemContent
183
+ .tweet_results.result;
184
+ })
185
+ .filter((entry) => !!entry)
186
+ .map((entry) => (0, dist_1.createSchema)(entry)),
187
+ // SearchTimeline
188
+ this.results
189
+ .filter((result) => result.type === 'graphql' &&
190
+ result.name === 'SearchTimeline' &&
191
+ result.method === 'GET' &&
192
+ result.statusCode === '200')
193
+ .flatMap((result) => result.paths)
194
+ .flatMap((path) => {
195
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
196
+ return response.data.search_by_raw_query.search_timeline.timeline.instructions
197
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
198
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
199
+ })
200
+ .map((entry) => {
201
+ return entry.content.itemContent
202
+ .tweet_results.result;
203
+ })
204
+ .filter((entry) => !!entry)
205
+ .map((entry) => (0, dist_1.createSchema)(entry)),
206
+ // UserTweets
207
+ this.results
208
+ .filter((result) => result.type === 'graphql' &&
209
+ result.name === 'UserTweets' &&
210
+ result.method === 'GET' &&
211
+ result.statusCode === '200')
212
+ .flatMap((result) => result.paths)
213
+ .flatMap((path) => {
214
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
215
+ return response.data.user.result.timeline_v2.timeline.instructions
216
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
217
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
218
+ })
219
+ .map((entry) => {
220
+ return entry.content.itemContent
221
+ .tweet_results.result;
222
+ })
223
+ .filter((entry) => !!entry)
224
+ .map((entry) => (0, dist_1.createSchema)(entry)),
225
+ // Likes
226
+ this.results
227
+ .filter((result) => result.type === 'graphql' &&
228
+ result.name === 'Likes' &&
229
+ result.method === 'GET' &&
230
+ result.statusCode === '200')
231
+ .flatMap((result) => result.paths)
232
+ .flatMap((path) => {
233
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
234
+ return response.data.user.result.timeline_v2.timeline.instructions
235
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
236
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
237
+ })
238
+ .map((entry) => {
239
+ return entry.content.itemContent
240
+ .tweet_results.result;
241
+ })
242
+ .filter((entry) => !!entry)
243
+ .map((entry) => (0, dist_1.createSchema)(entry)),
244
+ ].flat();
245
+ await this.generateTypeFromSchema((0, dist_1.mergeSchemas)(schemas), 'CustomTweetObject', 'レスポンスツイートオブジェクト');
246
+ }
247
+ /**
248
+ * レスポンスツイートレガシーオブジェクト(CustomTweetLegacyObject)のカスタム型定義を生成する
249
+ */
250
+ async runTweetLegacyObject() {
251
+ // 各レスポンスからレガシーツイートオブジェクトを抽出
252
+ const schemas = [
253
+ // SearchTimeline
254
+ this.results
255
+ .filter((result) => result.type === 'graphql' &&
256
+ result.name === 'SearchTimeline' &&
257
+ result.method === 'GET' &&
258
+ result.statusCode === '200')
259
+ .flatMap((result) => result.paths)
260
+ .flatMap((path) => {
261
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
262
+ return response.data.search_by_raw_query.search_timeline.timeline.instructions
263
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
264
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
265
+ })
266
+ .map((entry) => {
267
+ return entry.content.itemContent
268
+ .tweet_results.result.legacy;
269
+ })
270
+ .map((entry) => (0, dist_1.createSchema)(entry)),
271
+ // UserTweets: tweet_results.result.legacy
272
+ this.results
273
+ .filter((result) => result.type === 'graphql' &&
274
+ result.name === 'UserTweets' &&
275
+ result.method === 'GET' &&
276
+ result.statusCode === '200')
277
+ .flatMap((result) => result.paths)
278
+ .flatMap((path) => {
279
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
280
+ return response.data.user.result.timeline_v2.timeline.instructions
281
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
282
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
283
+ })
284
+ .filter((entry) => entry.content.itemContent.tweet_results
285
+ .result.legacy !== undefined)
286
+ .map((entry) => {
287
+ return entry.content.itemContent
288
+ .tweet_results.result.legacy;
289
+ })
290
+ .map((entry) => (0, dist_1.createSchema)(entry)),
291
+ // UserTweets: tweet_results.result.tweet?.legacy
292
+ this.results
293
+ .filter((result) => result.type === 'graphql' &&
294
+ result.name === 'UserTweets' &&
295
+ result.method === 'GET' &&
296
+ result.statusCode === '200')
297
+ .flatMap((result) => result.paths)
298
+ .flatMap((path) => {
299
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
300
+ return response.data.user.result.timeline_v2.timeline.instructions
301
+ .filter((instruction) => instruction.type === 'TimelineAddEntries' && instruction.entries)
302
+ .flatMap((instruction) => instruction.entries?.filter((entry) => entry.entryId.startsWith('tweet-')));
303
+ })
304
+ .filter((entry) => entry.content.itemContent.tweet_results
305
+ .result.tweet?.legacy !== undefined)
306
+ .map((entry) => {
307
+ return entry.content.itemContent
308
+ .tweet_results.result.tweet?.legacy;
309
+ })
310
+ .map((entry) => (0, dist_1.createSchema)(entry)),
311
+ ].flat();
312
+ await this.generateTypeFromSchema((0, dist_1.mergeSchemas)(schemas), 'CustomTweetLegacyObject', 'レスポンスツイートレガシーオブジェクト');
313
+ }
314
+ /**
315
+ * レスポンスユーザーレガシーオブジェクト(CustomUserLegacyObject)のカスタム型定義を生成する
316
+ */
317
+ async runUserLegacyObject() {
318
+ // 各レスポンスからレガシーユーザーオブジェクトを抽出
319
+ const schemas = [
320
+ // UserByRestId
321
+ this.results
322
+ .filter((result) => result.type === 'graphql' &&
323
+ result.name === 'UserByRestId' &&
324
+ result.method === 'GET' &&
325
+ result.statusCode === '200')
326
+ .flatMap((result) => result.paths)
327
+ .flatMap((path) => {
328
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
329
+ return response.data.user.result.legacy;
330
+ })
331
+ .map((entry) => (0, dist_1.createSchema)(entry)),
332
+ // UserByScreenName
333
+ this.results
334
+ .filter((result) => result.type === 'graphql' &&
335
+ result.name === 'UserByScreenName' &&
336
+ result.method === 'GET' &&
337
+ result.statusCode === '200')
338
+ .flatMap((result) => result.paths)
339
+ .flatMap((path) => {
340
+ const response = JSON.parse(node_fs_1.default.readFileSync(path, 'utf8'));
341
+ return response.data.user.result.legacy;
342
+ })
343
+ .map((entry) => (0, dist_1.createSchema)(entry)),
344
+ ].flat();
345
+ await this.generateTypeFromSchema((0, dist_1.mergeSchemas)(schemas), 'CustomUserLegacyObject', 'レスポンスユーザーレガシーオブジェクト');
346
+ }
347
+ /**
348
+ * カスタム型定義を、スキーマを元に生成する
349
+ *
350
+ * @param schema スキーマ
351
+ * @param name 型名
352
+ * @param tsDocument 型定義の tsdoc(1 行で記述)
353
+ */
354
+ async generateTypeFromSchema(schema, name, tsDocument) {
355
+ const logger = node_utils_1.Logger.configure('CustomTypeGenerator.generateTypeFromSchema');
356
+ if (!schema) {
357
+ throw new Error('No schema found');
358
+ }
359
+ const kebabName = name.replaceAll(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
360
+ const schemaPath = (0, node_path_1.join)(this.schemaDirectory, 'custom', `${kebabName}.json`);
361
+ const typesPath = (0, node_path_1.join)(this.typesDirectory, 'custom', `${kebabName}.ts`);
362
+ node_fs_1.default.mkdirSync((0, node_path_1.dirname)(schemaPath), { recursive: true });
363
+ node_fs_1.default.writeFileSync(schemaPath, JSON.stringify(schema, null, 2));
364
+ node_fs_1.default.mkdirSync((0, node_path_1.dirname)(typesPath), { recursive: true });
365
+ const types = await (0, json_schema_to_typescript_1.compile)(schema, name, utils_1.Utils.getCompileOptions(tsDocument));
366
+ node_fs_1.default.writeFileSync(typesPath, types);
367
+ logger.info(`📝 ${name}`);
368
+ }
369
+ /**
370
+ * カスタム型定義を生成する
371
+ */
372
+ async generate(parallel) {
373
+ const generators = [
374
+ this.runGraphQLSearchTimeline(),
375
+ this.runGraphQLUserTweets(),
376
+ this.runGraphQLUserLikeTweets(),
377
+ this.runGraphQLTimelineInstruction(),
378
+ this.runTweetObject(),
379
+ // twitter-d 変換用オブジェクト
380
+ this.runTweetLegacyObject(),
381
+ this.runUserLegacyObject(),
382
+ ];
383
+ if (parallel) {
384
+ await Promise.all(generators);
385
+ }
386
+ else {
387
+ for (const generator of generators) {
388
+ await generator;
389
+ }
390
+ }
391
+ }
392
+ }
393
+ exports.CustomTypesGenerator = CustomTypesGenerator;
394
+ //# sourceMappingURL=custom-types-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-types-generator.js","sourceRoot":"","sources":["../../src/generate-types/custom-types-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { Result } from './utils';
2
+ /**
3
+ * レスポンス種別
4
+ */
5
+ type RequestType = 'GraphQL' | 'REST';
6
+ /**
7
+ * エンドポイントのまとめ型定義(src/models/responses/endpoints.ts)を生成するクラス
8
+ */
9
+ export declare class EndPointTypeGenerator {
10
+ private readonly results;
11
+ private readonly typesDirectory;
12
+ /**
13
+ * @param results エンドポイントごとのレスポンス情報
14
+ * @param typesDirectory 型定義の出力先ディレクトリ
15
+ */
16
+ constructor(results: Result[], typesDirectory: string);
17
+ /**
18
+ * TypeScript インポート文群を生成する
19
+ *
20
+ * @returns インポート文群
21
+ */
22
+ generateImport(): string;
23
+ /**
24
+ * メソッド名の配列を取得する
25
+ *
26
+ * @param type エンドポイントの種類
27
+ * @returns メソッド名の配列
28
+ */
29
+ getMethods(type: RequestType): string[];
30
+ /**
31
+ * エンドポイント名群(<TYPE><METHOD>Endpoint)の定義を生成する
32
+ *
33
+ * @param type エンドポイントの種類
34
+ * @param method メソッド名
35
+ * @returns エンドポイント名群の定義
36
+ */
37
+ generateEndPointType(type: RequestType, method: string): string | null;
38
+ /**
39
+ * エンドポイント名を元に、成功・失敗のレスポンス型定義をまとめる型定義(<TYPE><METHOD>Response)を生成する。
40
+ *
41
+ * @param type エンドポイントの種類
42
+ * @param method メソッド名
43
+ */
44
+ generateResponseMergeType(type: RequestType, method: string): string;
45
+ /**
46
+ * エンドポイント名を元に、レスポンス型定義を紐づけるような型定義(<TYPE><METHOD>EndPointResponseType)を生成する。
47
+ *
48
+ * @param type エンドポイントの種類
49
+ * @param method メソッド名
50
+ * @returns レスポンス型定義を紐づけるような型定義
51
+ */
52
+ generateResponseType(type: RequestType, method: string): string;
53
+ /**
54
+ * エンドポイントの種類と HTTP メソッドを元に、「レスポンス型定義を紐づけるような型定義」を生成する。
55
+ *
56
+ * @param types エンドポイントの種類の配列
57
+ * @returns レスポンス型定義を紐づけるような型定義
58
+ */
59
+ generateEndpointResponseType(types: readonly RequestType[]): string;
60
+ /**
61
+ * エンドポイントのまとめ型定義(src/models/responses/endpoints.ts)を生成する
62
+ */
63
+ generate(): void;
64
+ }
65
+ export {};
66
+ //# sourceMappingURL=endpoint-type-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoint-type-generator.d.ts","sourceRoot":"","sources":["../../src/generate-types/endpoint-type-generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAS,MAAM,SAAS,CAAA;AAGvC;;GAEG;AACH,KAAK,WAAW,GAAG,SAAS,GAAG,MAAM,CAAA;AAErC;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAEvC;;;OAGG;gBACS,OAAO,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM;IAOrD;;;;OAIG;IACH,cAAc,IAAI,MAAM;IAsBxB;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,EAAE;IAOvC;;;;;;OAMG;IACH,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAoBtE;;;;;OAKG;IACH,yBAAyB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAyCpE;;;;;;OAMG;IACH,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAuB/D;;;;;OAKG;IACH,4BAA4B,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM;IAqCnE;;OAEG;IACH,QAAQ,IAAI,IAAI;CA6CjB"}