@lableb/javascript-sdk
Version:
Lableb cloud search client for javascript
33 lines (23 loc) • 1.11 kB
text/typescript
import * as yup from 'yup';
import { MESSAGES } from '../../config/messages';
import { isValidIntegerForYup } from '../../utils';
import { baseRequestSchema } from '../main/main.request.schema';
import { SearchRequestParams } from './search.request.type';
// @ts-ignore
export const buildSearchRequestSchema: yup.SchemaOf<SearchRequestParams> =
baseRequestSchema.concat(
yup.object()
.shape({
APIKey: yup
.string()
.required(MESSAGES.API_KEY_IS_REQUIRED),
query: yup.string().required(MESSAGES.QUERY_IS_REQUIRED),
searchHandler: yup.string().optional(),
sort: yup.string().optional(),
skip: yup.number().optional().test('test-integer', MESSAGES.SKIP_IS_NOT_INTEGER, isValidIntegerForYup),
limit: yup.number().optional().test('test-integer', MESSAGES.LIMIT_IS_NOT_INTEGER, isValidIntegerForYup),
facets: yup.object().shape({
key: yup.string().optional(),
}).optional(),
})
);