diff --git a/packages/web-api/src/types/request/search.ts b/packages/web-api/src/types/request/search.ts index bb094dc17..ead15496e 100644 --- a/packages/web-api/src/types/request/search.ts +++ b/packages/web-api/src/types/request/search.ts @@ -12,9 +12,23 @@ interface Searchable extends OptionalTeamAssignable, SortDir { sort?: 'score' | 'timestamp'; } +interface SearchMessagesCursorPagination { + /** + * @description Paginate through collections of data by setting the `cursor` parameter to `*` for the first "page" + * or a `next_cursor` attribute returned by a previous request's `response_metadata`. + * Use the `count` parameter to set the number of items to return per page rather than `limit`. + * @see {@link https://docs.slack.dev/apis/web-api/pagination pagination} for more detail. + */ + cursor?: string; +} + // https://docs.slack.dev/reference/methods/search.all export interface SearchAllArguments extends TokenOverridable, TraditionalPagingEnabled, Searchable {} // https://docs.slack.dev/reference/methods/search.files export interface SearchFilesArguments extends TokenOverridable, TraditionalPagingEnabled, Searchable {} // https://docs.slack.dev/reference/methods/search.messages -export interface SearchMessagesArguments extends TokenOverridable, TraditionalPagingEnabled, Searchable {} +export interface SearchMessagesArguments + extends TokenOverridable, + TraditionalPagingEnabled, + Searchable, + SearchMessagesCursorPagination {} diff --git a/packages/web-api/test/types/methods/search.test-d.ts b/packages/web-api/test/types/methods/search.test-d.ts index 1d835f370..b79bb0fb3 100644 --- a/packages/web-api/test/types/methods/search.test-d.ts +++ b/packages/web-api/test/types/methods/search.test-d.ts @@ -35,3 +35,10 @@ expectAssignable>([ query: '1234', // must specify query }, ]); +expectAssignable>([ + { + query: '1234', + cursor: '*', // optional: enable cursor pagination + count: 30, // optional: the number of results to return per page + }, +]);