Skip to content

Commit

Permalink
🤖 Merge PR DefinitelyTyped#44316 Make Vimeo request() generic to opti…
Browse files Browse the repository at this point in the history
…onally type results by @mattleff

* Make Vimeo request() generic to optionally type results

* Add tests for vimeo types

* Don't type request() method
  • Loading branch information
mattleff authored May 4, 2020
1 parent f7b47ec commit c9dae84
Show file tree
Hide file tree
Showing 3 changed files with 82 additions and 3 deletions.
4 changes: 2 additions & 2 deletions types/vimeo/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@

export type CompleteCallback = (
err: string | undefined,
result: undefined | object,
result: any,
statusCode?: number,
headers?: object,
headers?: object
) => void;

export type ProgressCallback = (bytesUploaded: number, bytesTotal: number) => void;
Expand Down
3 changes: 2 additions & 1 deletion types/vimeo/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts"
"index.d.ts",
"vimeo-tests.ts"
]
}
78 changes: 78 additions & 0 deletions types/vimeo/vimeo-tests.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
import { RequestOptions, Vimeo } from 'vimeo';

const errorHandler = (e: string) => {};
const uriHandler = (uri: string) => {};
const progressHandler = (bytesUploaded: number, bytesTotal: number) => {};
const completeHandler = (
err: string | undefined,
result: undefined | object,
statusCode?: number,
headers?: object,
) => {};
const completeHandlerShort = (err: string | undefined, result: undefined | object) => {};

// $ExpectType Vimeo
const client = new Vimeo('', '', '');

// $ExpectType void
client.upload('', {}, uriHandler, undefined, errorHandler);

// $ExpectType void
client.upload('', {}, uriHandler, progressHandler, errorHandler);

// $ExpectType void
client.upload('', uriHandler, undefined, errorHandler);

// $ExpectType void
client.upload('', uriHandler, progressHandler, errorHandler);

// $ExpectType void
client.replace('', '', {}, uriHandler, undefined, errorHandler);

// $ExpectType void
client.replace('', '', {}, uriHandler, progressHandler, errorHandler);

// $ExpectType void
client.request('', completeHandler);

// $ExpectType void
client.request('', completeHandlerShort);

// $ExpectType void
client.request('', (err: string | undefined, result: string | undefined) => {});

// $ExpectType void
client.request('', (err: string | undefined, result: { thing: string } | undefined) => {});

const requestOptions: RequestOptions = {
method: 'GET',
path: '/videos/123',
};

// $ExpectType void
client.request(requestOptions, completeHandler);

const requestOptionsFull: RequestOptions = {
method: 'GET',
path: '/videos/123',
headers: {},
query: 'thing=thing2',
};

// $ExpectType void
client.request(requestOptionsFull, (err: string | undefined, result: string | undefined) => {});

// $ExpectType Vimeo
const clientWithoutAccessToken = new Vimeo('', '');

// $ExpectType void
clientWithoutAccessToken.setAccessToken('');

// $ExpectType void
clientWithoutAccessToken.accessToken('', '', completeHandler);

// $ExpectType void
clientWithoutAccessToken.buildAuthorizationEndpoint('', '', '');

// $ExpectType void
clientWithoutAccessToken.buildAuthorizationEndpoint('', [''], '');

0 comments on commit c9dae84

Please sign in to comment.