From ce999b8783aba736f876e04d2d4ca65a6ff0277c Mon Sep 17 00:00:00 2001 From: Carlos Esteban Lopez Date: Wed, 24 May 2023 18:23:32 -0500 Subject: [PATCH] fix(microsite): SafeType the plugins reduce & map function Signed-off-by: Carlos Esteban Lopez --- microsite/src/pages/plugins/index.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/microsite/src/pages/plugins/index.tsx b/microsite/src/pages/plugins/index.tsx index 7cb917c01b..94e9df0e8d 100644 --- a/microsite/src/pages/plugins/index.tsx +++ b/microsite/src/pages/plugins/index.tsx @@ -10,25 +10,31 @@ import React, { useState } from 'react'; import { IPluginData, PluginCard } from './_pluginCard'; import pluginsStyles from './plugins.module.scss'; +interface IPluginsList { + corePlugins: IPluginData[]; + otherPlugins: IPluginData[]; +} + const pluginsContext = require.context( '../../../data/plugins', false, /\.ya?ml/, ); -const plugins = pluginsContext.keys().reduce( +const plugins: IPluginsList = pluginsContext.keys().reduce( (acum, id) => { let pluginData: IPluginData = pluginsContext(id).default; + const category: keyof IPluginsList = + pluginData.category === 'Core Feature' ? 'corePlugins' : 'otherPlugins'; pluginData = calcIsNewPlugin(pluginData); + pluginData = truncateDescription(pluginData); - acum[ - pluginData.category === 'Core Feature' ? 'corePlugins' : 'otherPlugins' - ].push(truncateDescription(pluginData)); + acum[category].push(pluginData); return acum; }, - { corePlugins: [] as IPluginData[], otherPlugins: [] as IPluginData[] }, + { corePlugins: [], otherPlugins: [] } as IPluginsList, ); plugins.corePlugins.sort((a, b) => a.order - b.order);