Skip to content

feat: implement paginator dependency #24

@paul-thebaud

Description

@paul-thebaud

First draft on paginator interface:

export type Paginator<
  Deserialized extends DeserializedData,
  Page,
  PageInfo,
> = {
  paginate(action: Action, page: Page): Awaitable<void>;
  extract(data: Deserialized): Awaitable<PageInfo>;
};

export type PaginationStrategies<Deserialized extends DeserializedData> =
  & {
    default: Paginator<Deserialized, unknown, unknown>;
    [name: string]: Paginator<Deserialized, unknown, unknown>;
  }
  & { chunk?: Paginator<Deserialized, { offset: number; limit: number; }, {}>; };

export type Paginator<
  Deserialized extends DeserializedData = DeserializedData,
  Strategies extends PaginatorStrategies<Deserialized> = PaginatorStrategies<Deserialized>,
> = {
  strategies: Strategies;
};

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions