Skip to content

Commit 24c1d6c

Browse files
committed
ensure unique resource name
1 parent 9e24ad6 commit 24c1d6c

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

src/routes/plans/[id]/+page.svelte

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@
119119
import type { ActivityErrorCounts } from '../../../types/errors';
120120
import type { Extension } from '../../../types/extension';
121121
import type { PlanSnapshot } from '../../../types/plan-snapshot';
122+
import type { ResourceType } from '../../../types/simulation';
122123
import type { View, ViewSaveEvent, ViewToggleEvent } from '../../../types/view';
123124
import { getConstraintStatus } from '../../../utilities/constraint';
124125
import effects from '../../../utilities/effects';
@@ -414,7 +415,17 @@
414415
$: if ($initialPlan && browser) {
415416
// Asynchronously fetch resource types
416417
effects.getResourceTypes($initialPlan.model_id, data.user).then(initialResourceTypes => {
417-
$resourceTypes = [...initialResourceTypes, ...$externalResources.map(({ name, schema }) => ({ name, schema }))];
418+
const uniqueLookup: Set<string> = new Set();
419+
$resourceTypes = [...initialResourceTypes, ...$externalResources].reduce(
420+
(prevExternalResources: ResourceType[], { name, schema }) => {
421+
if (!uniqueLookup.has(name)) {
422+
uniqueLookup.add(name);
423+
prevExternalResources.push({ name, schema });
424+
}
425+
return prevExternalResources;
426+
},
427+
[],
428+
);
418429
$resourceTypesLoading = false;
419430
});
420431
}

0 commit comments

Comments
 (0)