import * as Yup from 'yup' import YupKorean from 'yup-locales-ko' import { ListType } from '../types' Yup.setLocale(YupKorean) export const botListArgumentSchema = Yup.object({ type: Yup.string().oneOf(['VOTE', 'TRUSTED', 'NEW', 'PARTNERED', 'CATEGORY', 'SEARCH']).required(), page: Yup.number().positive().integer().notRequired().default(1), query: Yup.string().notRequired() }) export interface botListArgument { type: ListType page?: number query?: string } export const ImageOptionsSchema: Yup.SchemaOf = Yup.object({ id: Yup.string().required(), ext: Yup.mixed().oneOf(['webp', 'png', 'gif']).required(), size: Yup.mixed().oneOf(['128', '256', '512']).required() }) interface ImageOptions { id: string ext: ext size: ImageSize } type ext = 'webp' | 'png' | 'gif' type ImageSize = '128' | '256' | '512' export const PageCount = Yup.number().integer().positive() export const OauthCallbackSchema: Yup.SchemaOf = Yup.object({ code: Yup.string().required() }) interface OauthCallback { code: string } export default Yup