kibana/x-pack/plugins/infra/server/utils/create_afterkey_handler.ts
Brandon Kobel 4584a8b570
Elastic License 2.0 (#90099)
* Updating everything except the license headers themselves

* Applying ESLint rules

* Manually replacing the stragglers
2021-02-03 18:12:39 -08:00

25 lines
863 B
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { set } from '@elastic/safer-lodash-set';
import { InfraDatabaseSearchResponse } from '../lib/adapters/framework';
export const createAfterKeyHandler = (
optionsAfterKeyPath: string | string[],
afterKeySelector: (input: InfraDatabaseSearchResponse<any, any>) => any
) => <Options extends object>(
options: Options,
response: InfraDatabaseSearchResponse<any, any>
): Options => {
if (!response.aggregations) {
return options;
}
const newOptions = { ...options };
const afterKey = afterKeySelector(response);
set(newOptions, optionsAfterKeyPath, afterKey);
return newOptions;
};