import { RefinementCtx } from 'zod' import { RefineBinary, refineOne, refineOneR, refineTwo, refineTwoR, RefineUnary } from '../assert' import { BasicChecks, getBasicChecks } from './getBasicChecks' import { getTernaryChecks } from './getTernaryChecks' export type WithBasicRefines = BasicChecks, RefineBinary, N> export const getBasicRefinesR = getBasicChecks(refineOneR, refineTwoR) export const getTernaryRefinesR = getTernaryChecks(refineOneR, refineTwoR) export const getRefines = (ctx: RefinementCtx) => getBasicChecks(refineOne(ctx), refineTwo(ctx)) // export const getBasicRefines = (arithmetic: BasicArithmetic): WithBasicChecks, RefineBinary, N> => ({ // ...getBasicChecks(refineByUnary, refineByBinary)(arithmetic), // oneBy: (ctx: RefinementCtx) => (filter: Filter, $filter: string) => refineByUnary(filter, $filter)(ctx), // })