From 0468b52c3ca8c532faa42ba54bc44483a1dde5ca Mon Sep 17 00:00:00 2001 From: pedrofrxncx Date: Fri, 24 Jul 2026 10:59:50 -0300 Subject: [PATCH] refactor(file-storage): remove unused orgFsChangeSubject export orgFsChangeSubjects (plural) is the only one org-fs.ts calls; the singular orgFsChangeSubject had zero callers outside its own test. --- .../src/file-storage/org-fs-notify.test.ts | 11 ++--------- apps/api/src/file-storage/org-fs-notify.ts | 19 +++++-------------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/apps/api/src/file-storage/org-fs-notify.test.ts b/apps/api/src/file-storage/org-fs-notify.test.ts index 36fb631b78..48cf584fe0 100644 --- a/apps/api/src/file-storage/org-fs-notify.test.ts +++ b/apps/api/src/file-storage/org-fs-notify.test.ts @@ -1,15 +1,8 @@ import { describe, expect, test } from "bun:test"; -import { - notifyOrgFsChange, - orgFsChangeSubject, - orgFsChangeSubjects, -} from "./org-fs-notify"; +import { notifyOrgFsChange, orgFsChangeSubjects } from "./org-fs-notify"; describe("org-fs NATS compatibility subjects", () => { test("returns the canonical subject first and its legacy alias second", () => { - expect(orgFsChangeSubject("org-1", "home")).toBe( - "studio.org-fs.changes.org-1.home", - ); expect(orgFsChangeSubjects("org-1", "home")).toEqual([ "studio.org-fs.changes.org-1.home", "mesh.org-fs.changes.org-1.home", @@ -17,7 +10,7 @@ describe("org-fs NATS compatibility subjects", () => { }); test("rejects unsafe NATS subject tokens", () => { - expect(orgFsChangeSubject("org.with.dot", "home")).toBeNull(); + expect(orgFsChangeSubjects("org.with.dot", "home")).toEqual([]); expect(orgFsChangeSubjects("org-1", "volume.*")).toEqual([]); }); diff --git a/apps/api/src/file-storage/org-fs-notify.ts b/apps/api/src/file-storage/org-fs-notify.ts index c3f4e21d64..011b064251 100644 --- a/apps/api/src/file-storage/org-fs-notify.ts +++ b/apps/api/src/file-storage/org-fs-notify.ts @@ -19,21 +19,12 @@ const SUBJECT_PREFIXES = [ ] as const; /** - * NATS subject for a volume's change notifications, or null if either token - * contains a character that isn't safe in a subject (`.`, `*`, `>`, ws). Volume - * is already validated upstream; orgId is server-controlled — the guard is - * defensive, and a null subject just means the long-poll falls back to its - * timeout safety net. + * Canonical subject plus the legacy alias used during rolling upgrades, or [] + * if either token contains a character that isn't safe in a subject (`.`, + * `*`, `>`, ws). Volume is already validated upstream; orgId is + * server-controlled — the guard is defensive, and empty subjects just mean + * the long-poll falls back to its timeout safety net. */ -export function orgFsChangeSubject( - orgId: string, - volume: string, -): string | null { - if (/[.*>\s]/.test(orgId) || /[.*>\s]/.test(volume)) return null; - return `${SUBJECT_PREFIXES[0]}.${orgId}.${volume}`; -} - -/** Canonical subject plus the legacy alias used during rolling upgrades. */ export function orgFsChangeSubjects(orgId: string, volume: string): string[] { if (/[.*>\s]/.test(orgId) || /[.*>\s]/.test(volume)) return []; return SUBJECT_PREFIXES.map((prefix) => `${prefix}.${orgId}.${volume}`);