Skip to content

Commit

Permalink
fix: add GotPaginateOptions
Browse files Browse the repository at this point in the history
  • Loading branch information
jaulz committed Mar 3, 2020
1 parent d3c6be3 commit 8d48d99
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions source/create.ts
Expand Up @@ -61,9 +61,11 @@ export interface GotRequestMethod {
<T>(url: string | Merge<Options, {isStream: true}>, options?: Merge<Options, {isStream: true}>): ProxyStream<T>;
}

export interface GotPaginateOptions<T> = Omit<Options, keyof PaginationOptions<unknown>> & PaginationOptions<T>

export interface GotPaginate {
<T>(url: URLOrOptions & PaginationOptions<T>, options?: Omit<Options, keyof PaginationOptions<unknown>> & PaginationOptions<T>): AsyncIterableIterator<T>;
all<T>(url: URLOrOptions & PaginationOptions<T>, options?: Omit<Options, keyof PaginationOptions<unknown>> & PaginationOptions<T>): Promise<T[]>;
<T>(url: string | GotPaginateOptions<T>, options?: GotPaginateOptions<T>): AsyncIterableIterator<T>;
all<T>(url: string | GotPaginateOptions<T>, options?: GotPaginateOptions<T>): Promise<T[]>;
}

export interface Got extends Record<HTTPAlias, GotRequestMethod>, GotRequestMethod {
Expand Down Expand Up @@ -198,8 +200,8 @@ const create = (defaults: Defaults): Got => {
}

// @ts-ignore The missing property is added below
got.paginate = async function * <T>(url: URLOrOptions, options?: Omit<Options, keyof PaginationOptions<unknown>> & PaginationOptions<T>) {
let normalizedOptions = normalizeArguments(url, options as Options, defaults);
got.paginate = async function * <T>(url: string | Omit<Options, keyof PaginationOptions<unknown>> & PaginationOptions<T>, options?: Omit<Options, keyof PaginationOptions<unknown>> & PaginationOptions<T>) {
let normalizedOptions = normalizeArguments(url as URLOrOptions, options as Options, defaults);

const pagination = normalizedOptions._pagination!;

Expand Down Expand Up @@ -245,7 +247,7 @@ const create = (defaults: Defaults): Got => {
}
};

got.paginate.all = async <T>(url: URLOrOptions, options?: Omit<Options, keyof PaginationOptions<unknown>> & PaginationOptions<T>) => {
got.paginate.all = async <T>(url: string | GotPaginateOptions<T>, options?: GotPaginateOptions<T>) => {
const results: T[] = [];

for await (const item of got.paginate<T>(url, options)) {
Expand Down

0 comments on commit 8d48d99

Please sign in to comment.