Skip to content

Instantly share code, notes, and snippets.

@KrisKnez
Created March 27, 2024 23:35
Show Gist options
  • Save KrisKnez/5144856abe2ad2b3fc82d48d1ac1092e to your computer and use it in GitHub Desktop.
Save KrisKnez/5144856abe2ad2b3fc82d48d1ac1092e to your computer and use it in GitHub Desktop.
IPrismaStringFilter.ts
import { Prisma } from '@prisma/client';
type IPrismaStringFilter<
Prefix extends string,
Delimiter extends string = '_',
Operations extends keyof Prisma.StringFilter = keyof Prisma.StringFilter,
> = {
[K in `${Prefix}${Delimiter}${keyof Pick<
Prisma.StringFilter,
Extract<'equals' | 'contains' | 'startsWith' | 'endsWith', Operations>
>}`]?: string;
} & {
[K in `${Prefix}${Delimiter}${keyof Pick<Prisma.StringFilter, Extract<'in' | 'notIn', Operations>>}`]?: string[];
} & {
[K in `${Prefix}${Delimiter}${keyof Pick<Prisma.StringFilter, Extract<'mode', Operations>>}`]?: Prisma.QueryMode;
} & {
[K in `${Prefix}`]: Prisma.StringFilter;
};
export default IPrismaStringFilter;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment