displayName: removeMeta()

in src/server.ts [61:121]


          displayName: removeMeta(bug.summary),
          release: bug.cf_fx_iteration.split(".")[0],
        }));
      }
    } catch (e) {
      // Don't update if the data is bad
    }
  }
  res.send(metasCache.data);
});

const iterationsCache = new ServerCache({
  name: "Iterations",
  maxAge: { days: 1 },
});
app.get("/api/iterations", async (req, res) => {
  if (iterationsCache.isExpired() || req.query.force) {
    try {
      const iterationsLookup = await fetchIterations();
      if (iterationsLookup) {
        iterationsCache.data = iterationsLookup;
      }
    } catch (e) {
      // Don't update if the data is bad
    }
  }
  res.send(iterationsCache.data);
});

const releasesCache = new ServerCache({
  name: "Releases",
  maxAge: { hours: 6 },
});
app.get("/api/releases", async (req, res) => {
  if (releasesCache.isExpired() || req.query.force) {
    try {
      const releases = await fetchReleaseData();
      if (releases && releases.beta.date && releases.release.date) {
        releasesCache.data = releases;
      }
    } catch (e) {
      // Don't update if the data is bad
    }
  }
  res.send(releasesCache.data);
});

const teamsCache = new ServerCache({
  name: "Teams",
  maxAge: { days: 1 },
  // Refresh before triage meeting to ensure triage owner is up-to-date. The
  // triage owner on Bugzilla is synced with Google Calendar every weekday at
  // 12:00 UTC, so we refresh on Mondays at 12:30 UTC.
  interval: { weekday: "monday", hour: 12, minute: 30 },
});
app.get("/api/teams", async (req, res) => {
  if (teamsCache.isExpired() || req.query.force) {
    try {
      let detailedTeams: { [key: string]: any[] } = {};
      for (const team of Object.keys(teams)) {
        try {