UNPKG

@lableb/javascript-sdk

Version:

Lableb cloud search client for javascript

54 lines (40 loc) 2.01 kB
import * as yup from 'yup'; import { MESSAGES } from '../../config/messages'; import { BaseRequestParams, OptionalBaseRequestParams } from '../../types'; import { isValidDocumentIdForYup, isValidIPAddress, validateSessionIdGenerator } from '../../utils'; import { GlobalRequestOptions } from './main.request.type'; // @ts-ignore export const optionalBaseRequestSchema: yup.SchemaOf<OptionalBaseRequestParams> = yup.object() .shape({ sessionId: yup.string().optional(), userId: yup.string().optional().test('test-id', MESSAGES.INVALID_USER_ID, isValidDocumentIdForYup), userIp: yup.string().optional().test('test-ip', MESSAGES.INVALID_IP_ADDRESS, isValidIPAddress), userCountry: yup.string().length(2, MESSAGES.COUNTRY_NAME_LENGTH_IS_INVALID).optional().uppercase(), sessionIdGenerator: yup.mixed().test('test-type', MESSAGES.SESSION_ID_GENERATOR_TYPE_ERROR, validateSessionIdGenerator) }); // @ts-ignore export const mainRequestSchema: yup.SchemaOf<GlobalRequestOptions> = optionalBaseRequestSchema.concat( // @ts-ignore yup.object() .shape({ APIKey: yup.string().optional(), indexingAPIKey: yup.string().optional(), platformName: yup.string().optional(), indexName: yup.string().optional(), searchHandler: yup.string().optional(), autocompleteHandler: yup.string().optional(), recommendHandler: yup.string().optional(), }) ); // @ts-ignore export const baseRequestSchema: yup.SchemaOf<BaseRequestParams> = optionalBaseRequestSchema.concat( yup.object() .shape({ platformName: yup.string().required(MESSAGES.PLATFORM_NAME_IS_REQUIRED), indexName: yup.string().required(MESSAGES.INDEX_NAME_IS_REQUIRED), indexingAPIKey: yup.string().optional(), APIKey: yup.string().optional(), }) );