From db9b42e0156f1e5ef73696ccbaf757a6fe53ad19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ra=C4=8D=C3=A1k?= Date: Wed, 12 Feb 2025 15:04:25 +0100 Subject: [PATCH] Remove MultiDimDataPage feature flag --- adminSiteServer/apiRoutes/mdims.ts | 9 +-------- baker/SiteBaker.tsx | 7 ------- settings/clientSettings.ts | 21 +++++++++++++-------- 3 files changed, 14 insertions(+), 23 deletions(-) diff --git a/adminSiteServer/apiRoutes/mdims.ts b/adminSiteServer/apiRoutes/mdims.ts index ef7b6301b9..93ff81ae10 100644 --- a/adminSiteServer/apiRoutes/mdims.ts +++ b/adminSiteServer/apiRoutes/mdims.ts @@ -8,10 +8,6 @@ import { multiDimDataPageExists, } from "../../db/model/MultiDimDataPage.js" import { expectInt, isValidSlug } from "../../serverUtils/serverUtil.js" -import { - FEATURE_FLAGS, - FeatureFlagFeature, -} from "../../settings/clientSettings.js" import { upsertMultiDimConfig, setMultiDimPublished, @@ -71,10 +67,7 @@ export async function handlePutMultiDim( const rawConfig = req.body as MultiDimDataPageConfigRaw const id = await upsertMultiDimConfig(trx, slug, rawConfig) - if ( - FEATURE_FLAGS.has(FeatureFlagFeature.MultiDimDataPage) && - (await multiDimDataPageExists(trx, { slug, published: true })) - ) { + if (await multiDimDataPageExists(trx, { slug, published: true })) { await triggerStaticBuild( res.locals.user, `Publishing multidimensional chart ${slug}` diff --git a/baker/SiteBaker.tsx b/baker/SiteBaker.tsx index 03bc0932af..dbf45c71b3 100644 --- a/baker/SiteBaker.tsx +++ b/baker/SiteBaker.tsx @@ -83,7 +83,6 @@ import { getAllImages } from "../db/model/Image.js" import { generateEmbedSnippet } from "../site/viteUtils.js" import { logErrorAndMaybeCaptureInSentry } from "../serverUtils/errorLog.js" import { mapSlugsToConfigs } from "../db/model/Chart.js" -import { FeatureFlagFeature } from "../settings/clientSettings.js" import pMap from "p-map" import { GdocDataInsight } from "../db/model/Gdoc/GdocDataInsight.js" import { calculateDataInsightIndexPageCount } from "../db/model/Gdoc/gdocUtils.js" @@ -810,12 +809,6 @@ export class SiteBaker { private async bakeMultiDimPages(knex: db.KnexReadonlyTransaction) { if (!this.bakeSteps.has("multiDimPages")) return - if (!FEATURE_FLAGS.has(FeatureFlagFeature.MultiDimDataPage)) { - console.log( - "Skipping baking multi-dim pages because feature flag is not set" - ) - return - } const { imageMetadata } = await this.getPrefetchedGdocAttachments(knex) await bakeAllMultiDimDataPages(knex, this.bakedSiteDir, imageMetadata) diff --git a/settings/clientSettings.ts b/settings/clientSettings.ts index 46e51818ea..23e7c15cb9 100644 --- a/settings/clientSettings.ts +++ b/settings/clientSettings.ts @@ -102,16 +102,21 @@ export const GDOCS_DETAILS_ON_DEMAND_ID: string = export const PUBLISHED_AT_FORMAT = "ddd, MMM D, YYYY HH:mm" -// Feature flags: FEATURE_FLAGS is a comma-separated list of flags, and they need to be part of this enum to be considered -export enum FeatureFlagFeature { - MultiDimDataPage = "MultiDimDataPage", -} +/** A map of possible features which can be enabled or disabled. */ +const Features = { + ExampleFeature: "ExampleFeature", +} as const + +type Feature = (typeof Features)[keyof typeof Features] + +// process.env.FEATURE_FLAGS is a comma-separated list of flags, and they need +// to be a valid value in the Features object to be considered. const featureFlagsRaw = (typeof process.env.FEATURE_FLAGS === "string" && process.env.FEATURE_FLAGS.trim()?.split(",")) || [] -export const FEATURE_FLAGS: Set = new Set( - Object.keys(FeatureFlagFeature).filter((key) => - featureFlagsRaw.includes(key) - ) as FeatureFlagFeature[] +export const FEATURE_FLAGS: Set = new Set( + Object.values(Features).filter((feature) => + featureFlagsRaw.includes(feature) + ) )