diff --git a/src/routes/console/project-[project]/functions/store.ts b/src/routes/console/project-[project]/functions/store.ts index 20a6859b8..52f09ec54 100644 --- a/src/routes/console/project-[project]/functions/store.ts +++ b/src/routes/console/project-[project]/functions/store.ts @@ -7,11 +7,11 @@ export const runtimesList = derived( async ($page) => (await $page.data.runtimesList) as Models.RuntimeList ); -export const baseRuntimesList = derived(runtimesList, async ($runtimesList) => ({ - runtimes: (await $runtimesList).runtimes - .map((runtime) => { - const runtimeBase = runtime.name.split('-')[0]; - return { ...runtime, name: runtimeBase }; - }) - .filter((runtime, index, self) => self.findIndex((n) => n.name === runtime.name) === index) -})); +export const baseRuntimesList = derived(runtimesList, async ($runtimesList) => { + const baseRuntimes = new Map(); + (await $runtimesList).runtimes.forEach((runtime) => { + const runtimeBase = runtime.name.split('-')[0]; + baseRuntimes.set(runtimeBase, runtime); + }); + return { runtimes: [...baseRuntimes.values()] }; +}); diff --git a/src/routes/console/project-[project]/functions/templates/+page.svelte b/src/routes/console/project-[project]/functions/templates/+page.svelte index 108fd17f8..110cb04fb 100644 --- a/src/routes/console/project-[project]/functions/templates/+page.svelte +++ b/src/routes/console/project-[project]/functions/templates/+page.svelte @@ -42,17 +42,13 @@ function getBaseRuntimes(runtimes: Runtime[]): Runtime[] { const baseRuntimes = new Map(); - for (const runtime of runtimes) { const [baseRuntime] = runtime.name.split('-'); - if (!baseRuntimes.has(baseRuntime)) { - baseRuntimes.set(baseRuntime, { - ...runtime, - name: baseRuntime - }); - } + baseRuntimes.set(baseRuntime, { + ...runtime, + name: baseRuntime + }); } - return [...baseRuntimes.values()]; } diff --git a/src/routes/console/project-[project]/functions/templates/template-[template]/store.ts b/src/routes/console/project-[project]/functions/templates/template-[template]/store.ts index a31caa70d..5e726c512 100644 --- a/src/routes/console/project-[project]/functions/templates/template-[template]/store.ts +++ b/src/routes/console/project-[project]/functions/templates/template-[template]/store.ts @@ -1,14 +1,17 @@ import { page } from '$app/stores'; -import type { MarketplaceTemplate } from '$lib/stores/marketplace'; +import type { MarketplaceTemplate, Runtime } from '$lib/stores/marketplace'; import { derived } from 'svelte/store'; export const template = derived(page, ($page) => $page.data.template as MarketplaceTemplate); -export const baseRuntimes = derived(template, ($template) => - $template.runtimes - .map((runtime) => { - const runtimeBase = runtime.name.split('-')[0]; - return { ...runtime, name: runtimeBase }; - }) - .filter((runtime, index, self) => self.findIndex((n) => n.name === runtime.name) === index) -); +export const baseRuntimes = derived(template, ($template) => { + const baseRuntimes = new Map(); + $template.runtimes.forEach((runtime) => { + const runtimeBase = runtime.name.split('-')[0]; + baseRuntimes.set(runtimeBase, runtime); + }); + return { + ...template, + runtimes: [...baseRuntimes.values()] + }; +});