Files
Homarr/src/server/api/routers/icon.ts

39 lines
1.2 KiB
TypeScript
Raw Normal View History

import { GitHubIconsRepository } from '~/tools/server/images/github-icons-repository';
2023-06-10 13:10:02 +02:00
import { JsdelivrIconsRepository } from '~/tools/server/images/jsdelivr-icons-repository';
2023-07-21 18:08:40 +09:00
import { LocalIconsRepository } from '~/tools/server/images/local-icons-repository';
2023-06-10 13:10:02 +02:00
import { UnpkgIconsRepository } from '~/tools/server/images/unpkg-icons-repository';
2023-07-21 18:08:40 +09:00
import { createTRPCRouter, publicProcedure } from '../trpc';
export const IconRespositories = [
new LocalIconsRepository(),
new GitHubIconsRepository(
GitHubIconsRepository.walkxcode,
'Walkxcode Dashboard Icons',
'Walkxcode on Github'
),
new UnpkgIconsRepository(
UnpkgIconsRepository.tablerRepository,
'Tabler Icons',
'Tabler Icons - GitHub (MIT)'
),
new JsdelivrIconsRepository(
JsdelivrIconsRepository.papirusRepository,
'Papirus Icons',
'Papirus Development Team on GitHub (Apache 2.0)'
),
new JsdelivrIconsRepository(
JsdelivrIconsRepository.homelabSvgAssetsRepository,
'Homelab Svg Assets',
'loganmarchione on GitHub (MIT)'
),
];
2023-06-10 13:10:02 +02:00
export const iconRouter = createTRPCRouter({
all: publicProcedure.query(async () => {
const fetches = IconRespositories.map((rep) => rep.fetch());
2023-06-10 13:10:02 +02:00
const data = await Promise.all(fetches);
return data;
}),
});