aboutsummaryrefslogtreecommitdiffstats
path: root/packages/api/utils/types.ts
blob: bdaf815f7a36fa885fea9780a68409a868878a07 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { z } from "zod";

import { zSortOrder } from "@karakeep/shared/types/bookmarks";

export const zStringBool = z
  .string()
  .refine((val) => val === "true" || val === "false", "Must be true or false")
  .transform((val) => val === "true");

export const zIncludeContentSearchParamsSchema = z.object({
  // TODO: Change the default to false in a couple of releases.
  includeContent: zStringBool.optional().default("true"),
});

export const zGetBookmarkQueryParamsSchema = z
  .object({
    sortOrder: zSortOrder
      .exclude([zSortOrder.Enum.relevance])
      .optional()
      .default(zSortOrder.Enum.desc),
  })
  .merge(zIncludeContentSearchParamsSchema);

export const zGetBookmarkSearchParamsSchema = z
  .object({
    sortOrder: zSortOrder.optional().default(zSortOrder.Enum.relevance),
  })
  .merge(zIncludeContentSearchParamsSchema);