/
asb
/
sloy-map
Обзор
Документация
Войти
/
asb
/
sloy-map
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/lib/helpers/createSources.ts
38 строк
982 B
Anton Akhatov
visualisationLayer -> visualization
05 фев 2024, 02:58
05 фев 2024, 02:58
e2dc2ef
Код
Авторство
О чём код?
import { IApp, ICard, ISource, SourceProperty } from "@/types"; import { InputSloySource } from "@/types/inputTypes"; import { nanoid } from "@reduxjs/toolkit"; export function createSources(sources: InputSloySource[]): { cards: IApp["cards"]; sources: IApp["sources"]; } { const { cards, finalSources } = sources.reduce<{ cards: Record<string, ICard>; finalSources: Record<string, ISource>; }>( (all, source) => { const id = nanoid(5); const properties = (source.properties || []).reduce< Record<string, SourceProperty> >((all, prop) => ({ ...all, [prop.id]: prop }), {}); return { finalSources: { ...all.finalSources, [source.id]: { ...source, properties, card: id } as ISource, }, cards: { ...all.cards, [id]: { ...source.card, id }, }, }; }, { finalSources: {}, cards: {} }, ); return { cards, sources: finalSources, }; }