Skip to content

Commit 764fa5c

Browse files
committed
fix 201 success responses
1 parent b12036d commit 764fa5c

File tree

1 file changed

+13
-9
lines changed

1 file changed

+13
-9
lines changed

src/types.ts

+13-9
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
// Copyright 2021 Twitter, Inc.
22
// SPDX-License-Identifier: Apache-2.0
33

4-
type SuccessStatus = 200;
5-
type ResponseType = "application/json";
4+
export type SuccessStatus = 200 | 201;
5+
export type ResponseType = "application/json";
66

77
export interface AuthHeader {
88
Authorization: string;
@@ -33,18 +33,22 @@ export type UnionToIntersection<U> = (
3333
? I
3434
: never;
3535

36+
export type GetSuccess<T> = {
37+
[K in SuccessStatus & keyof T]: GetContent<T[K]>;
38+
}[SuccessStatus & keyof T];
39+
3640
export type TwitterResponse<T> = UnionToIntersection<ExtractTwitterResponse<T>>;
3741

38-
export type ExtractTwitterResponse<T> = "responses" extends keyof T
39-
? SuccessStatus extends keyof T["responses"]
40-
? "content" extends keyof T["responses"][SuccessStatus]
41-
? ResponseType extends keyof T["responses"][SuccessStatus]["content"]
42-
? T["responses"][SuccessStatus]["content"][ResponseType]
43-
: never
44-
: never
42+
export type GetContent<T> = "content" extends keyof T
43+
? ResponseType extends keyof T["content"]
44+
? T["content"][ResponseType]
4545
: never
4646
: never;
4747

48+
export type ExtractTwitterResponse<T> = "responses" extends keyof T
49+
? GetSuccess<T["responses"]>
50+
: never;
51+
4852
export type TwitterParams<T> = "parameters" extends keyof T
4953
? "query" extends keyof T["parameters"]
5054
? T["parameters"]["query"]

0 commit comments

Comments
 (0)