@lableb/javascript-sdk
Version:
Lableb cloud search client for javascript
32 lines (23 loc) • 1.15 kB
text/typescript
import * as yup from 'yup';
import { MESSAGES } from '../../config/messages';
import { isValidDocumentIdForYup, isValidIntegerForYup } from '../../utils';
import { baseRequestSchema } from '../main/main.request.schema';
import { RecommendRequestParams } from './recommend.request.type';
// @ts-ignore
export const buildRecommendRequestSchema: yup.SchemaOf<RecommendRequestParams> =
baseRequestSchema.concat(
yup.object()
.shape({
APIKey: yup
.string()
.required(MESSAGES.API_KEY_IS_REQUIRED),
id: yup.string()
.test('test-id', MESSAGES.IS_INVALID_DOCUMENT_ID, isValidDocumentIdForYup)
.required(MESSAGES.DOCUMENT_ID_IS_REQUIRED),
title: yup.string().optional(),
url: yup.string().url(MESSAGES.URL_IS_NOT_VALID).optional(),
recommendHandler: yup.string().optional(),
sort: yup.string().optional(),
limit: yup.number().optional().test('test-integer', MESSAGES.LIMIT_IS_NOT_INTEGER, isValidIntegerForYup),
})
);