/* eslint @typescript-eslint/no-explicit-any: "off" */ import type { Context } from "koa"; import { Field } from "sealious"; import { FlatTemplatable } from "tempstream"; export type ListFilterRender = ( value: string, field: Field, ctx: Context ) => FlatTemplatable; export type DefaultListFilter = { render: ListFilterRender; prepareValue?: (filter_value: unknown) => unknown; }; export const BooleanListFilter = { render: (value: string, field: Field) => { return /* HTML */ ``; }, }; export const SimpleTextFilter = { render: (value: string, field: Field) => { return /* HTML */ ``; }, prepareValue: (value: string) => { return { regex: `.*${value}.*` }; }, }; export const DefaultListFilters = { boolean: BooleanListFilter, text: SimpleTextFilter, fallback: SimpleTextFilter, } as Record<"boolean" | "text" | "fallback", DefaultListFilter>;