From 65199ecdf7eb992c9b80942e1b0534656a188669 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Thu, 2 Apr 2026 12:45:17 -0700 Subject: [PATCH] refactor: rename mixins parameter to avoid mutation Rename parameter to mixinsList to avoid mutating the input parameter. Add non-null assertion for pop result. --- server/src/mixin/mixin-cycle.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/server/src/mixin/mixin-cycle.ts b/server/src/mixin/mixin-cycle.ts index 7b1d72384..2992e9249 100644 --- a/server/src/mixin/mixin-cycle.ts +++ b/server/src/mixin/mixin-cycle.ts @@ -10,22 +10,22 @@ export function getMixins(scrypted: ScryptedRuntime, id: string) { } export function hasMixinCycle(scrypted: ScryptedRuntime, id: string, mixins?: string[]) { - mixins = mixins || getMixins(scrypted, id); + let mixinsList = mixins || getMixins(scrypted, id); // given the mixins for a device, find all the mixins for those mixins, // and create a visited graph. // if the visited graphs includes the original device, that indicates // a cyclical dependency for that device. - const visitedMixins = new Set(mixins); + const visitedMixins = new Set(mixinsList); - mixins = mixins.slice(); - while (mixins.length) { - const mixin = mixins.pop(); + mixinsList = mixinsList.slice(); + while (mixinsList.length) { + const mixin = mixinsList.pop()!; if (visitedMixins.has(mixin)) continue; visitedMixins.add(mixin); const providerMixins = getMixins(scrypted, mixin); - mixins.push(...providerMixins); + mixinsList.push(...providerMixins); } return visitedMixins.has(id);