add function diffArraysSimple for more efficient change detection

This commit is contained in:
Hazelnoot 2025-05-25 12:34:09 -04:00
parent 8a2ed3bc86
commit 35dfde838b
3 changed files with 89 additions and 13 deletions

View file

@ -14,7 +14,7 @@ import { UtilityService } from '@/core/UtilityService.js';
import { bindThis } from '@/decorators.js';
import type { GlobalEvents } from '@/core/GlobalEventService.js';
import { Serialized } from '@/types.js';
import { diffArrays } from '@/misc/diff-arrays.js';
import { diffArrays, diffArraysSimple } from '@/misc/diff-arrays.js';
@Injectable()
export class FederatedInstanceService implements OnApplicationShutdown {
@ -99,11 +99,11 @@ export class FederatedInstanceService implements OnApplicationShutdown {
private syncCache(before: Serialized<MiMeta | undefined>, after: Serialized<MiMeta>): void {
const changed =
hasDiff(before?.blockedHosts, after.blockedHosts) ||
hasDiff(before?.silencedHosts, after.silencedHosts) ||
hasDiff(before?.mediaSilencedHosts, after.mediaSilencedHosts) ||
hasDiff(before?.federationHosts, after.federationHosts) ||
hasDiff(before?.bubbleInstances, after.bubbleInstances);
diffArraysSimple(before?.blockedHosts, after.blockedHosts) ||
diffArraysSimple(before?.silencedHosts, after.silencedHosts) ||
diffArraysSimple(before?.mediaSilencedHosts, after.mediaSilencedHosts) ||
diffArraysSimple(before?.federationHosts, after.federationHosts) ||
diffArraysSimple(before?.bubbleInstances, after.bubbleInstances);
if (changed) {
// We have to clear the whole thing, otherwise subdomains won't be synced.
@ -134,9 +134,3 @@ export class FederatedInstanceService implements OnApplicationShutdown {
this.dispose();
}
}
function hasDiff(before: string[] | null | undefined, after: string[] | null | undefined): boolean {
const { added, removed } = diffArrays(before, after);
return added.length > 0 || removed.length > 0;
}