* refactor: remove central validation export to improve typescript performance * fix: missing package exports change in validation package * chore: address pull request feedback
31 lines
987 B
TypeScript
31 lines
987 B
TypeScript
import { and, like } from "@homarr/db";
|
|
import { icons } from "@homarr/db/schema";
|
|
import { iconsFindSchema } from "@homarr/validation/icons";
|
|
|
|
import { createTRPCRouter, publicProcedure } from "../trpc";
|
|
|
|
export const iconsRouter = createTRPCRouter({
|
|
findIcons: publicProcedure.input(iconsFindSchema).query(async ({ ctx, input }) => {
|
|
return {
|
|
icons: await ctx.db.query.iconRepositories.findMany({
|
|
with: {
|
|
icons: {
|
|
columns: {
|
|
id: true,
|
|
name: true,
|
|
url: true,
|
|
},
|
|
where:
|
|
(input.searchText?.length ?? 0) > 0
|
|
? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
and(...input.searchText!.split(" ").map((keyword) => like(icons.name, `%${keyword}%`)))
|
|
: undefined,
|
|
limit: input.limitPerGroup,
|
|
},
|
|
},
|
|
}),
|
|
countIcons: await ctx.db.$count(icons),
|
|
};
|
|
}),
|
|
});
|